专利摘要:
休止状態のコンピュータ・ハードウェア・リソースのサブセットを有効にするための方法、システム、及びコンピュータ・プログラム製品を提供する。 ホスト・プロセッサ(ホストCPU)を含む論理パーティション化されたホスト・コンピュータ・システムにおいて、ゲスト構成の1つ又は複数のゲスト・プロセッサ(ゲストCPU)のトポロジを発見するためのファシリティ及び命令が、コンピュータ構成のトポロジ情報を取得するSTORE SYSTEMINFORMATION命令をフェッチして実行するゲスト構成のゲスト・プロセッサを含む。トポロジ情報は、構成のプロセッサのネスティング情報と、ホスト・プロセッサが対応するゲスト・プロセッサに提供する専用状態の程度とを含む。情報は、好ましくは、メモリ内の単一のテーブルに格納される。
公开号:JP2011509477A
申请号:JP2010541796
申请日:2009-01-12
公开日:2011-03-24
发明作者:クバラ、ジェフリー;ゲイニー、ジュニア、チャールズ;シュミット、ドナルド;ファレル、マーク
申请人:インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Maschines Corporation;
IPC主号:G06F9-50
专利说明:

[0001] 本発明は、一般に、マルチプロセッサ・システムの仮想化に関する。特に、本発明は、プログラムが自らの仮想環境のトポロジを発見できるようにすることに関する。]
背景技術

[0002] システムの制御機能には、システムをいくつかの論理パーティション(LPAR)に分割する能力がある。LPARは、オペレーティング・システムをサポートするように定められたプロセッサ・ハードウェアのサブセットである。LPARは、リソース(プロセッサ、メモリ、及び入力/出力装置)を含み、独立したシステムとして作動する。メインフレーム・ハードウェア・システム内に多数の論理パーティションを存在させることができる。]
[0003] S/390(登録商標)を含むIBMのメインフレーム・コンピュータ・システムにおいては、長年、15個のLPARという制限が存在した。最近のマシンは、30個(潜在的にはそれより多く)のLPARを有する。そのようなマシンとして、z/Architecture(登録商標)によるマシンが例示される。IBM(登録商標)z/Architecture(登録商標)は、非特許文献1に記載される。]
[0004] メモリ・サイズ、I/Oの可用性、及び利用可能な処理能力の実際的な制限により、通常、LPARの数は、それらの最大数より少ない数に制限される。]
[0005] パーティション化を提供するハードウェア及びファームウェアは、PR/SM(商標)(プロセッサ・リソース/システム・マネージャ)として知られている。LPARを作成し、稼働させるのに用いられるのは、PR/SM機能である。PR/SM(内蔵ファシリティ)とLPAR(PR/SMを用いた結果)との間のこの違いは無視されることが多く、LPARという用語は、ファシリティ及びその結果について併せて用いられる。]
[0006] システム管理者は、メモリの一部を各々のLPARに割り当て、メモリは、LPAR間で共有することができない。管理者は、プロセッサ(CP又はCPUとしても知られる)を特定のLPARに割り当てることが可能であり、又は、管理者は、システム・コントローラが内部負荷分散アルゴリズムを用いていずれかのプロセッサ又は全てのプロセッサを全てのLPARにディスパッチできるようにすることが可能である。チャネル(CHPID)を、各々のチャネル上の装置の性質に応じて、特定のLPARに割り当てるか、又は、多数のLPARによって共有することができる。]
[0007] シングル・プロセッサ(CPプロセッサ)を持つシステムが、多数のLPARを有することができる。PR/SMは、オペレーティング・システム・ディスパッチャがプロセッサ時間の一部を各々のプロセス、スレッド、又はタスクに割り当てるのと同じように、プロセッサの一部を各々のLPARに割り当てることができる内部ディスパッチャを有する。]
[0008] パーティション化制御の仕様は、一部がIOCDS内に含まれ、一部がシステム・プロファイル内に含まれる。IOCDS及びプロファイルはいずれも、例えばシステム内部の単なるノートブック型コンピュータであるサポート・エレメント(SE)内に存在する。SEは、例えばメインフレーム・マイクロプロセッサのようなハードウェアを監視及び制御するために用られるデスクトップ型パーソナル・コンピュータである、1つ又は複数のハードウェア・マネジメント・コンソール(HMC)に接続することができる。HMCは、SEと比べて用いるのがより簡便であり、いくつかの異なるメインフレームを制御することができる。]
[0009] HMCから(又は、異常時にはSEから)の作業によって、オペレータは、プロファイル及びIOCDSを選択してロードすることにより用いるように、メインフレームを準備する。プロファイル及びIOCDSによって、LPARが作成され、デバイス番号、LPAR割り当て、多数のパス情報などを持つチャネルが構成される。これはパワー・オン・リセット(POR)として知られる。異なるプロファイル及びIOCDSをロードすることによって、オペレータは、LPARの数及び性質、並びにI/O構成の状態を完全に変えることができる。しかしながら、これを行うことは、通常、稼働中のオペレーティング・システム及びアプリケーションのいずれにも悪影響を及ぼし、したがって、事前の計画なしに行われることはほとんどない。
論理パーティション(LPAR)は、実際には、別個のメインフレームと等しい。]
[0010] 各々のLPARは、自らのオペレーティング・システムを稼働させる。これは、いずれかのメインフレーム・オペレーティング・システムとすることができ、各々のLPARにおいて、例えばz/OS(登録商標)を稼働させる必要はない。インストールの計画者は、いくつかのLPARにわたってI/Oデバイスを共有するように選択することができるが、これは、ローカルな判断(local decision)である。]
[0011] システム管理者は、LPARを排他的に使用するように1つ又は複数のシステム・プロセッサを割り当てることができる。代替的に、管理者は、全てのプロセッサがいくつか又は全てのLPAR上で用いられるようにすることができる。ここで、システム制御機能(多くの場合、マイクロ・コード又はファームウェアとして知られる)は、選択されたLPARの間でプロセッサを共有するためのディスパッチャを提供する。管理者は、各々のLPARに存在する並列プロセッサの最大数を定めることができる。管理者は、異なるLPARについて重みを与えることができ、例えば、LPAR1がLPAR2の2倍のプロセッサ時間を受け取るように定めることができる。]
[0012] 各々のLPARにおけるオペレーティング・システムは、別々にIPLされ、そのオペレーティング・システム自身のコピーや(必要な場合には)それ自身のオペレータ・コンソールなどを持つ。1つのLPARにおけるシステムがクラッシュした場合でも、他のLPARには影響は全くない。]
[0013] 3つのLPARを持つメインフレーム・システムにおいては、例えば、LPAR1に製品z/OSを有し、LPAR2にz/OSのテストバージョンを有し、LPAR3にS/390(登録商標)のためのLinux(登録商標)を有するようにすることができる。このシステム全体が8GBのメモリを有する場合には、LPAR1に4GBを割り当て、LPAR2に1GBを割り当て、LPAR3に1GBを割り当て、更に予備として2GBを保持することができる。2つのz/OS LPARのためのオペレーティング・システム・コンソールは、全く異なる場所に存在することができる。]
[0014] 最も実際的な目的のためには、例えば、z/OSを稼働(及び、自らのI/O構成の大部分を共有)する3つの別個のメインフレームと、それと同じことを実行する同じメインフレーム上の3つのLPARとの間に違いはない。少数の例外を除いて、z/OS、オペレータ、及びアプリケーションは、その違いを検出することができない。]
[0015] わずかな違いとして、完全なメインフレーム・システム全体にわたる性能情報及び利用情報を取得し、性能を改善するためにリソース(プロセッサ及びチャネル)をLPAR間で動的に移す、z/OSの能力(LPARが定められたときに可能となる場合)が挙げられる。]
[0016] 今日のIBM(登録商標)メインフレームは、中央プロセッサ複合体(CPC)を有し、これは、わずかに異なる目的に用いることができる幾つかの異なるタイプのz/Architecture(登録商標)プロセッサを含むことができる。]
[0017] これらの目的のうちのいくつかは、ソフトウェアのコスト管理に関するものであるが、その他の目的は、より基礎的なものである。CPCの全てのプロセッサは、用途が特徴付けられていない等価なプロセッサ・ユニット(PU)又はエンジンとして開始する。各々のプロセッサは、インストールの際に又はその後に、IBMによって特徴付けられる。潜在的な特徴を以下に示す。]
[0018] −プロセッサ(CP)
このプロセッサのタイプは、通常のオペレーティング・システム及びアプリケーション・ソフトウェアで利用可能である。]
[0019] − System Assistance Processor(SAP)
最新のメインフレームはいずれも、少なくとも一つのSAPを有し、より大きなシステムは、いくつかのSAPを有する場合がある。SAPは、内部コードを実行してI/Oサブシステムを提供する。SAPは、例えば、チャネル・パス識別子(CHPID)のデバイス番号及び実アドレス、制御ユニット・アドレス、並びにデバイス番号を変換する。SAPは、制御ユニットへの多数のパスを管理し、一時的エラーのためのエラー回復を行う。オペレーティング・システム及びアプリケーションは、SAPを検出することができず、SAPは、「通常の」メモリのいずれも使用しない。]
[0020] − Integrated Facility for Linux(登録商標)(IFL)
これは、z/OS(登録商標)によってのみ用いられる、使用不可能な1つ又は2つの命令を伴う通常のプロセッサである。Linuxは、これらの命令を用いることはなく、従って、IFL上で動作することができる。Linuxは、CPによって実行することもできる。両者の違いは、システムのモデル数を特定するときにIFLはカウントされないことである。これによって、ソフトウェアのコストに実質的に違いが生じる可能性がある。]
[0021] − zAAP
これは、オペレーティング・システム全体がプロセッサ上で動作することができないように、使用不可能な多くの機能(割り込み処理、幾つかの命令)を伴うプロセッサである。しかしながら、z/OSは、zAAPプロセッサの存在を検出することができ、Java(商標)コードを実行するためにこれらのプロセッサを用いる。同じJavaコードは、標準のCP上で実行することができる。同様に、zAAPエンジンは、システムのモデル数を特定するときにカウントされない。IFLのように、zAAPエンジンは、ソフトウェアのコストを抑制するためだけに存在する。]
[0022] − zIIP
System z9(商標)Integrated Information Processor(zIIP)は、適用可能なデータベース作業負荷を処理することに特化したエンジンである。zIIPは、ビジネス・インテリジェンス(BI)、エンタープライズ・リソース・プラニング(ERP)及びカスタマー・リレーションシップ・マネージメント(CRM)といった、メインフレーム上の選択された作業負荷について、ソフトウェア費用を低減するのを支援するように設計されている。zIIPは、よりコスト効率よくDB2(登録商標)に直接アクセスすることを支援し、データを多数コピーする必要性を減らすことによって、企業のデータ・ハブとしてのメインフレームの役割を強化する。]
[0023] Integrated Coupling Facility(ICF)
これらのプロセッサは、ライセンスされた内部コードのみを実行する。これらは、通常のオペレーティング・システム又はアプリケーションには認識されない。例えば、結合ファシリティは、実際には、作業を協働する多数のシステムによって用いられる大きなメモリ・スクラッチ・パッドである。ICFは、後に結合ファシリティになるLPARに割り当てなければならない。]
[0024] Spare
特徴付けられていないPUは、「スペア」として機能する。システム・コントローラが、機能しないCP又はSAPを検出した場合には、それをスペアPUと置き換えることができる。多くの場合、これは、いずれのシステムも、機能しないプロセッサ上で稼働しているアプリケーションであっても、中断することなく行うことができる。]
[0025] プロセッサのこれらの特徴に加えて、いくつかのメインフレームは、それらのCPの潜在的なスピードより遅く動作するように構成されたモデル又はバージョンを有する。これは、「ニーキャッピング(knee−capping)」として広く知られているが、IBMは、キャパシティ・セッティング(capacity setting)という用語又は同様の用語を好んでいる。これは、例えば、プロセッサの命令ストリームにヌルサイクルを挿入するマイクロ・コードを用いることによって行われる。目的は、この場合もやはり、アプリケーションの要件を満たす最小のメインフレーム・モデル又はバージョンを有することにより、ソフトウェア費用を抑えることである。IFL、SAP、zAAP、zIIP、及びICFは、ソフトウェアの価格計算において「カウントされない」ため、常に、プロセッサの最高速度で機能する。]
[0026] プロセッサ及びCPUというときには、完全なシステム・ボックスか、又は、システム・ボックス内部のプロセッサ(CPU)の一つのいずれかのことをいう場合がある。その意味は、説明の文脈から明らかにすることができるが、メインフレームの専門家でさえ、説明の際に彼らが用いているのはどのプロセッサ又はCPUを意味しているのかを明確にしなければならない。IBMは、主ストレージ、1つ又は複数の中央プロセッサ、タイマ、及びチャネルを含むハードウェアの物理的集合体のことを言うために、中央プロセッサ複合体(CPC)という用語を用いる。(システム・プログラマには、メインフレーム「ボックス」のことを言うのに中央電子複合体(CEC)を用いる者もいるが、好ましい用語はCPCである。)]
[0027] 簡単に言えば、CPC内部の全てのS/390又はz/アーキテクチャ・プロセッサは、処理ユニット(PU)である。IBMがCPCを引き渡すときに、PUは、(通常の作業のための)CP、Integrated Facility for Linux(IFL)、並列シスプレックス構成のためのIntegrated Coupling Facility(ICF)などとして特徴付けられる。]
[0028] メインフレームの専門家は、典型的には、状況に応じて、ハードウェア・ボックス、(I/Oデバイスを伴う)完全なハードウェア環境、又は(ソフトウェアを伴う)オペレーティング環境を示すために、システムを用いる。メインフレームの専門家は、典型的には、CPCの内部のシングル・プロセッサ(CP)を意味するために、プロセッサを用いる。]
[0029] z/VM(登録商標) HYPERVISOR(商標)は、アプリケーション及びデータを統合すると同時に、並外れた水準の可用性、安全性、及び運用容易性を提供することによって、顧客が企業全体にわたってメインフレーム技術のビジネス価値を増大させるのを支援するように設計されている。z/VM仮想化技術は、クライアントの能力が、z/OS(登録商標)のような他のシステムzオペレーティング・システムと共に稼働する単一のメインフレーム上で又はLinux専用の大規模エンタープライズ・サーバ・ソリューションとして、数百から数千のLinuxサーバを稼働させることを可能にするように設計されている。z/VM V5.3は、z/OS、z/VSE、及びz/TPのような非Linux作業負荷をホストすることにより、生産性を改善するのを支援することもできる。]
[0030] z/VMは、仮想マシンとして知られる個別の作業環境を各々のユーザに提供する。仮想マシンは、プロセッサ機能、メモリ、ネットワーキング、及び入力/出力(I/O)リソースを含む、専用の実マシンの存在をエミュレートする。オペレーティング・システム及びアプリケーション・プログラムは、ゲストとして仮想マシン内で稼働することができる。例えば、種々のアプリケーション及びエンドユーザもサポートする同じz/VMシステム上で、多数のLinux及びz/OSイメージを稼働させることができる。結果として、開発、試験、及び生産環境を単一の物理コンピュータで共有することができる。]
[0031] 図15-図18を参照すると、パーティション化及び仮想化は、ITリソースを別個の物理エンティティではなく論理プールとして扱うことによって、物理的なものから論理的なものに思考をシフトすることを含む。これは、ITリソースを統合し、プールすることと、同種及び異種のサーバ、ストレージ、分散システム、及びネットワークについて「単一のシステムであるという錯覚(single system illusion)」を起こさせることとを含む。] 図15 図18
[0032] ハードウェアのパーティション化には、各々がその特定のアプリケーションを稼働させる、別個のオペレーティング・システムのための別個のCPUを必要とする。ソフトウェアのパーティション化は、個々のオペレーティング・システムがCPUのいずれか又は全てで稼働できるようにするためのソフトウェアベースの「ハイパーバイザ」を使用する。]
[0033] ハイパーバイザは、多数のオペレーティング・システムがホスト・コンピュータ上で同時に稼働することを可能にする。今日、我々は、z/VMの前身であるIBM VM/370に始まるハイパーバイザ技術を有する。論理パーティション化(LPAR)には、オペレーティング・システムをCPUから分離させるためのパーティション化ファームウェア(ハードウェアベースのハイパーバイザ)を必要とする。]
[0034] 仮想化は、四つの基礎的な能力、すなわち、リソース共有、リソース集約、機能のエミュレーション、及び分離を可能にするか、又はこれらを利用する。これらの項目については、以下の章でより詳細に検討する。]
[0035] z/VMは、極めて柔軟性のある試験環境及び生産環境を提供するIBMシステムzプラットフォームのためのオペレーティング・システムである。IBM仮想化技術のz/VM実装は、Linux on System z、z/OSなどといった全機能型オペレーティング・システムをz/VMの「ゲスト」として稼働させる能力を提供する。z/VMは、64ビットのIBM z/Architectureゲスト及び31ビットのIBMエンタープライズ・システムアーキテクチャ/390ゲストをサポートする。]
[0036] z/VMは、仮想マシンとして知られる個別の作業環境を各々のユーザに提供する。仮想マシンは、プロセッサ機能、メモリ、ネットワーク、及び入力/出力(I/O)リソースを含む専用の実マシンの存在をシミュレートする。オペレーティング・システム及びアプリケーション・プログラムは、ゲストとして仮想マシン内で稼働することができる。例えば、種々のアプリケーション及びエンドユーザもサポートする同じz/VMシステム上で、多数のLinux及びz/OS(登録商標)イメージを稼働させることができる。結果として、開発、試験、及び生産環境を単一の物理コンピュータで共有することができる。]
[0037] 仮想マシンは実ハードウェア・リソースを用いるが、たとえ専用デバイス(テープ・ドライブのような)であっても、テープ・ドライブの仮想アドレスは、テープ・ドライブの実アドレスと同じであっても同じでなくても良い。したがって、仮想マシンは、実世界に存在してもしなくてもよい「仮想ハードウェア」のみを識別する。]
[0038] 第1レベルのz/VMは、図19の実ハードウェア上にインストールされるベースとなるオペレーティング・システムである。第2レベルのオペレーティング・システムは、ベースとなるz/VMオペレーティング・システム上で生成されるシステムである。したがって、ベースとなるオペレーティング・システムとしてのz/VMはハードウェア上で稼働し、ゲスト・オペレーティング・システムは、仮想化技術上で稼働する。図18において、第1レベルのゲスト(ゲスト−1)パーティションにロードされた第2レベルのゲストz/VM OSが示される。] 図18 図19
[0039] 換言すれば、ハードウェア上に直接乗る第1レベルのz/VMオペレーティング・システムが存在するが、この第1レベルのz/VMシステムのゲストは、仮想化される。ゲストからハードウェアを仮想化することにより、少数のハードウェアで必要な数のゲストを生成し、使用することができる。]
[0040] 前述のように、仮想マシン内で稼働するオペレーティング・システムは、多くの場合、「ゲスト」と呼ばれる。本明細書に記載される場合がある他の語句は、]
[0041] - 「第1レベルを稼働する」とは、ハードウェア上で直接稼働することを意味する(これは、z/VMが行うことである)。
- 「第2のレベルを稼働する」「VM下で稼働する」、又は「VM上で(の上で)稼働する」とは、ゲストとして稼働することを意味する。]
[0042] z/VMの機能の一例は、第1レベルのz/VMシステム及び第2のレベルのz/VMシステムを有する場合には、第2レベルのシステム上でさらに多くのオペレーティング・システムを生成し続けられることである。このタイプの環境は、展開前にオペレーティング・システムのインストールを試験するために、又は、オペレーティング・システムを試験若しくはデバッグするために、特に有用である。]
[0043] 仮想リソースは、下層の物理リソースにおいては利用できない機能又は特徴を有することができる。図15−図18は、リソース・エミュレーションによる仮想化を示す。] 図15 図18
[0044] 例として、別のアーキテクチャを用いて一つのプロセッサのアーキテクチャを実装するアーキテクチャ・エミュレーション・ソフトウェア、IPネットワーク上の仮想SCSIバスを実装するiSCSI、及び、物理ディスク・ストレージ上に実装される仮想テープ・ストレージが挙げられる。]
[0045] さらに、現代の技術における中央処理ユニット(CPU)のパッキングは、階層的であることが多い。多数のコアを単一のチップ上に配置することができる。多数のチップを単一のモジュール内に配置することができる。多数のモジュールをブックと言われることが多いボード上にパッケージすることができ、多数のブックを多数のフレーム全体にわたって分散させることができる。]
[0046] 米国特許第5551013号
米国特許第6009261号
米国特許5574873号
米国特許6308255号
米国特許6463582号
米国特許5790825号]
先行技術

[0047] z/Architecture Principles of Operation, IBM Pub. No. SA22-7832-05, 6thEdition, (April 2007).]
発明が解決しようとする課題

[0048] CPUは、いくつかのレベルのキャッシュを有することが多く、例えば、各々のプロセッサは、1つのキャッシュ(又は、分割された命令キャッシュ及びデータ・キャッシュということもあり得る)を有することができ、各々のプロセッサと主メモリ・インターフェイスとの間により大きい付加的なキャッシュが存在する場合もある。階層のレベルに応じて、キャッシュは、全体の性能を改善するように配置することもでき、あるレベルにおいては、キャッシュは、単一のCPUより多いCPU間で共有することもできる。そのような配置に関するエンジニアリング判断は、スペース、電力/熱、配線距離、CPU周波数、システム性能その他の側面を扱う。CPUの要素のこの配置によって、パーティションの各々のCPUがどこに配置されているかに応じて、特定の論理パーティションにとって概ね好ましいものとすることができる内部構造が生成される。論理パーティションは、実際にオペレーティング・システムが他のパーティションにおける他のオペレーティング・システムとリソースを共有している場合には、プロセッサの利用を含む特定のリソースの所有権(ownership)をそのオペレーティング・システムから見えるようにする。通常、ソフトウェアは、配置を認識することはなく、対称型マルチ・プロセッシング(SMP)構成においては、各々が同じレベルの性能をもたらす1組のCPUを認識する。問題は、内部のパッケージング及びいずれか2つのCPU間の「距離」を無視することによって、どのようにCPUに作業を割り当てることができるかについて最適とはいえない選択をソフトウェアが行う可能性があることである。したがって、SMP構成の潜在能力の全てが発揮されているとはいえない。]
[0049] 提示される仮想化のメインフレームの例は、マシンを仮想化する際に可能となる種々のトポロジを教示することを意図している。上述のように、1つのパーティションにおいて稼働する(オペレーティング・システムを含む)プログラムには、これらのプログラムが利用可能な、プロセッサ、メモリ及びI/Oを含むリソースが、そのパーティション専用のものであるように見えていると思われる。実際には、プログラムは、1つのパーティションで稼働しているという概念を持つことはない。そのようなプログラムもまた、それらのパーティションのトポロジを認識せず、したがって、そのようなトポロジに基づく選択を行うことができない。必要とされることは、プログラムが稼働している構成トポロジをそのプログラムが最適化する方法である。]
[0050] 未利用のコンピュータ・ハードウェア・リソースの組を有するアップグレード可能なコンピュータ・システムにおいて、未利用のコンピュータ・ハードウェア・リソースのサブセットを有効にするための方法、システム、及びコンピュータ・プログラム製品を提供することによって、従来技術の欠点が克服され、更なる利点がもたらされる。]
課題を解決するための手段

[0051] ホストCPUを含むホスト・コンピュータをパーティション化して、ゲストCPUを有する論理/仮想パーティションにすることができる。パーティション化は、IBMのz/VMのようなオペレーティング・システムにより提供することができるファームウェア又はソフトウェアによって実現されることが好ましい。各々のゲストCPUは、ゲスト・プログラムにはゲストCPUが実際のCPUプロセッサに見えるが、実際には下層のホストが各々のゲストCPUをホストCPUリソースにマッピングしているという点で、仮想CPUである。一実施形態においては、ゲストCPUは、ホストCPUを利用するゲストCPUのためにCPU時間の一部を指定するホストによって、ホストCPUの一部を用いて実装される。単一のホストCPUによって複数のゲストCPUをサポートすることができるが、逆もまた適用できることが想定される。]
[0052] 別の実施形態においては、ゲストCPUはソフトウェアによってエミュレートされ、それにより、エミュレーション・ルーチンが、(命令のデコード及び実行を含む)ゲストCPUの機能をホストCPU上で稼働するルーチンに変換する。ホストCPUは、ゲストCPUをサポートするようにプロビジョニングされる(provisioned)。]
[0053] 別の実施形態においては、第1のゲスト・イメージは、第2のゲスト・イメージのホストとすることができる。この場合には、第2のゲストCPUは、自らがホストCPUによってプロビジョニングされる第1のゲストCPUにより、プロビジョニングされる。構成のトポロジは、ゲストCPUのレベルと1つ又は複数のホストCPUのレベルとのネスティングである。]
[0054] 新たなPERFORM TOPOROGYFACILITY(PTF)命令が提供され、従来のSTORE SYSTEMINFORMATION (STSI)命令が、コンポーネント・アフィニティ(component affinity)及び論理パッケージング情報をソフトウェアに与える新たなSYSIB (SYSIB識別子15.1.2)を提供するように強化される。このことにより、マルチプロセッサの処理ユニットのような個々のコンポーネントがどのように種々のアプリケーション及び作業負荷に割り当てられるかについて、ソフトウェアが情報に基づくインテリジェントな選択を適用することが可能になる。例えば共有キャッシュのヒット率を上げることにより性能を改善するために、情報がプログラム(OS)に与えられる。]
[0055] 新たなPERFORM TOPOROGY FUNCTION(PTF)命令は、内部でプログラムが稼働しているCPU構成トポロジを変更させることを要求するために、スーパーバイザ、OS、カーネルなどのような特権的プログラムによって用いられる。一実施形態においては、ゲストCPUトポロジは、水平極性と垂直極性との間で切り替えられる。]
[0056] CPUトポロジ情報を学習する能力を有することにより、プログラムは、対称型マルチ・プロセッシング構成におけるいずれか任意の2つ又はそれ以上のCPU間の「距離」を理解する。]
[0057] 構成における全てのCPUの集約距離(aggregate distance)を最小化するために提供される機能と、特定のアプリケーション・プログラムのタスクが個々のCPU上にディスパッチされる方法とによって、スーパーバイザ・プログラムに性能を改善する能力が与えられる。性能の改善は、より良いトポロジ知識によって改善される以下の属性のうちの1つ又は複数によってもたらされる可能性がある。]
[0058] CPU間の信号伝達パスの短縮
多数のCPUによってアクセスされる共有ストレージは、CPUの組により近いキャッシュ内にあることが多い。したがって、キャッシュ間ストレージの使用は、より速いキャッシュ間転送を可能にする、マシン及び構成全体のうちのより小さな一部に限定される。CPU(L1)の最も近いキャッシュにストレージ場所が存在することが極めて発生しやすい。]
[0059] 性能が改善されることによって、構成における実際のCPUの数をより少なくすることができる一方で、依然として同じ稼働時間又はより少ない稼働時間で同じ仕事を行うことができる。CPUのこのような減少は、各々のCPUが構成の中の他のCPUと通信するために用いなければならない通信パスの数を減らし、それにより、全体の性能改善にさらに寄与する。]
[0060] 例えば、10個のCPUが特定のプログラムを実行する必要がある場合には、キャッシュ間のトラフィックは重要であるが、同じプログラムを1つのCPU上で実行することができる場合には、キャッシュ間のトラフィックは存在しない。このことは、ストレージがいずれのキャッシュ内にある場合でも、望ましいストレージ場所のキャッシュの存在が単一のCPUのキャッシュ内であることが保証されることを示す。]
[0061] ストレージ及び関連するキャッシュの階層が、多数の物理フレーム(即ち、ボックスなど)にわたって分散されているのとは対照的にローカルであるときには、信号伝達パスはより短い。トポロジ知識は、SMP構成におけるCPUの大きなサブセット内であってもそのサブセットがCPU間の最小距離を最適化するように、アプリケーション・プログラムに割り当てるCPUの適切なサブセットを選択する際の相対距離を示す。これは、アフィニティ・グループと呼ばれることがある。]
[0062] CPUカウントの減少及びCPU間の距離の概念は、プログラムがアフィニティ・グループへのCPUの割り当てを最適化できるようにするトポロジ情報によって与えられる。]
[0063] 一実施形態(図23)においては、ホスト・プロセッサ(ホストCPU)を含む論理パーティション化されたホスト・コンピュータ・システムにおいて、トポロジ情報は、ゲスト構成の1つ又は複数のゲスト・プロセッサ(ゲストCPU)に発見され、テーブルに格納される。好ましくは、ゲスト構成のゲスト・プロセッサは、実行するためにSTORE SYSTEMINFORMATION命令をフェッチする。STORE SYSTEM INFORMATION命令を実行するときに、STORE SYSTEM INFORMATION命令のトポロジ情報要求に基づいて、コンピュータ構成におけるプロセッサのネスティング情報を含むコンピュータ構成のトポロジ情報を取得する。取得されたトポロジ情報は、好ましくはメモリ内にある構成トポロジ・テーブルに格納される。] 図23
[0064] 一実施形態においては、トポロジ情報は、ホスト・プロセッサの識別情報と、ホスト・プロセッサのトポロジと関連するネスティング・レベルとを含む。]
[0065] 別の実施形態においては、トポロジ情報は、ゲスト構成のホスト・プロセッサに関する情報と、ゲスト構成のホスト・プロセッサのトポロジと関連するネスティング・レベルとを含む。]
[0066] 一実施形態においては、STORE SYSTEMINFORMATION命令は、オペコード・フィールド(opcode field)と、ベース・レジスタ・フィールドと、符号付き置換フィールド(signed displacement field)とを含み、トポロジ発見命令は、機能コード・フィールド及びセレクタ−1フィールドを含む第1の暗黙汎用レジスタと、セレクタ−2フィールドを含む第2の暗黙汎用レジスタとをさらに含み、機能コード・フィールドは、トポロジ情報要求を特定し、ベース・レジスタ・フィールド及び符号付き置換フィールドは、構成トポロジ・テーブルを含むシステム情報ブロック(SYSIB)のメモリ内の場所を特定し、セレクタ−1フィールド及びセレクタ−2フィールドの値は、組み合わさって、実行されるトポロジ情報要求を決定する。]
[0067] 別の実施形態においては、テーブルは、プロセッサのうちのネストされたプロセッサのグループごとのトポロジ・リスト・プロセッサ・エントリを含む。]
[0068] さらに別の実施形態においては、トポロジ・リスト・プロセッサ・エントリは、ネストされたプロセッサのグループのプロセッサが論理パーティションのゲスト構成に専用化されている程度を示す指標をさらに含む。]
[0069] 一実施形態においては、テーブルは、ネストされたプロセッサを有する1つ又は複数のネスティング・レベルの階層について各々のネスティング・レベルのトポロジ・リスト・コンテナ・エントリをさらに含む。]
[0070] 一実施形態においては、STORE SYSTEMINFORMATION命令の実行は、外部プロセッサ(alien processor)上のエミュレーションによって行われる。]
図面の簡単な説明

[0071] 従来技術によるホスト・コンピュータ・システムを示す。
従来技術によるエミュレートされたホスト・コンピュータ・システムを示す。
従来技術によるSTSIマシン命令の命令フォーマットを示す。
従来技術によるSTSI命令の暗黙レジスタ(implied register)を示す。
機能コード・テーブルを示す。
従来技術によるSYSIB 1.1.1 テーブルを示す。
従来技術によるSYSIB 1.2.1 テーブルを示す。
従来技術によるフォーマット-0 SYSIB 1.2.2 テーブルを示す。
従来技術によるフォーマット-1 SYSIB 1.2.2 テーブルを示す。
本発明によるSYSIB 15.1.2 テーブルを示す。
コンテナ・タイプTLEを示す。
CPUタイプTLEを示す。
本発明によるPTFマシン命令の命令フォーマットを示す。
PTF命令のレジスタ・フォーマットを示す。
従来技術によるパーティション化されたコンピュータ・システムの要素を示す。
従来技術によるパーティション化されたコンピュータ・システムの要素を示す。
従来技術によるパーティション化されたコンピュータ・システムの要素を示す。
従来技術によるパーティション化されたコンピュータ・システムの要素を示す。
コンピュータ・システムの例を示す。
例となるコンピュータ・システムのコンテナを示す。
例となるコンピュータ・システムのコンテナを示す。
例となるコンピュータ・システムのコンテナを示す。
本発明の実施形態のフローを示す。]
実施例

[0072] 本発明とみなされる主題が、特許請求の範囲において具体的に指摘され、明確に記載される。しかしながら、本発明は、構成及び実施方法の両方について、本発明の更なる目的及び利点と共に、添付図面と組み合わせて説明される以下の記載を参照することによって最も良く理解される。]
[0073] メインフレームにおいて、アーキテクチャ化された(architected)マシン命令は、多くの場合にはコンパイラ・アプリケーションのために、(典型的には「C」言語でアプリケーションを書くが、Java(登録商標)、COBOL、PL/I、PL/X、Fortran及び他の高レベル言語でもアプリケーションを書く)プログラマによって用いられる。ストレージ媒体に格納されたこれらの命令は、本来はz/アーキテクチャIBMサーバにおいて、又は、代わりに他のアーキテクチャを実行するマシンにおいて、実行することができる。これらの命令は、既存の及び将来のIBMメインフレーム・サーバにおいて、並びに、IBMの他のマシン(例えば、pSeries(登録商標)サーバ及びxSeries(登録商標)サーバ)上で、エミュレートすることができる。これらの命令は、IBM(登録商標)、Intel(登録商標)、AMD(商標)、Sun Microsystemsなどにより製造されたハードウェアを用いる幅広い種類のマシン上でLinuxを稼働するマシンにおいて、実行することができる。z/アーキテクチャ(登録商標)下におけるそうしたハードウェア上での実行に加えて、Linuxは、Hercules、UMX、FSI(Fundamental Software,Inc)又はPlatform Solutions,Inc.(PSI)によるエミュレーションを用いるマシンでも用いることができ、これらにおいては、実行は一般にエミュレーション・モードである。エミュレーション・モードにおいては、エミュレーション・ソフトウェアがネイティブ・プロセッサによって実行され、エミュレートされたプロセッサのアーキテクチャをエミュレートする。]
[0074] ネイティブ・プロセッサは、典型的には、ファームウェア又はネイティブ・オペレーティング・システムのいずれかを含むエミュレーション・ソフトウェアを実行して、エミュレートされたプロセッサのエミュレーションを行う。エミュレーション・ソフトウェアは、エミュレートされたプロセッサ・アーキテクチャの命令をフェッチして実行することを担当する。エミュレーション・ソフトウェアは、命令の境界(instruction boundaries)を追跡するために、エミュレートされたプログラム・カウンタを維持する。エミュレーション・ソフトウェアは、1つ又は複数のエミュレートされたマシン命令を同時にフェッチし、1つ又は複数のエミュレートされたマシン命令を、ネイティブ・プロセッサにより実行するためのネイティブ・マシン命令の対応するグループに変換することができる。これらの変換された命令は、より早い変換が実現できるように、キャッシュすることができる。それにもかかわらず、エミュレーション・ソフトウェアは、エミュレートされたプロセッサのために書かれたオペレーティング・システム及びアプリケーションが正しく動作することを保証するように、エミュレートされたプロセッサ・アーキテクチャのアーキテクチャ規則を維持しなければならない。さらに、エミュレーション・ソフトウェアは、エミュレートされたプロセッサを稼働するように設計されたオペレーティング・システム又はアプリケーション・プログラムを、エミュレーション・ソフトウェアを有するネイティブ・プロセッサ上で稼働することができるように、制御レジスタ、汎用レジスタ(多くの場合、浮動小数点レジスタを含む)、例えばセグメント・テーブル及びページ・テーブルを含む動的アドレス変換機能、割り込み機構、コンテキスト切り替え機構、時刻機構及びI/Oサブシステムへのアーキテクチャ化されたインターフェースを含むがこれらに限定されない、エミュレート・プロセッサ・アーキテクチャにより識別されるリソースを、提供しなければならない。]
[0075] エミュレートされている特定の命令はデコードされ、個々の命令の機能を実行するためにサブルーチンが呼び出される。エミュレートされたプロセッサの機能をエミュレートするエミュレーション・ソフトウェア機能は、例えば、「C」言語のサブルーチン若しくはドライバで、又は、好ましい実施形態の記載を理解した後であれば当業者の知識の範囲内である特定のハードウェアのためのドライバを与える他のいくつかの方法で、実装される。
発明の名称が「Multiprocessor for hardware emulation」であるBeausoleilらの特許文献1(米国特許第5551013号)、発明の名称が「Preprocessing of stored target routines for emulating incompatibleinstructions on a target processor」であるScalziらの特許文献2(米国特許第6009261号)、及び発明の名称が「Decoding guest instruction to directly access emulation routinesthat emulate the guest instructions」であるDavidianらの特許文献3(米国特許5574873号)、発明の名称が「Symmetrical multiprocessing bus and chipset used for coprocessorsupport allowing non-native code to run in a system」であるGorishekらの特許文献4(米国特許6308255号)、発明の名称が「Dynamic optimizing object code translator for architecture emulationand dynamic optimizing object code translation method」であるLethinらの特許文献5(米国特許6463582号)、発明の名称が「Method for emulating guest instructions on a host computer throughdynamic recompilation of host instructions」であるEric Trautの特許文献6(米国特許5790825号)、及び他の多くの特許を含むがこれらに限定されない、種々のソフトウェア及びハードウェア・エミュレーション特許は、当業者が利用可能なターゲット・マシンについて異なるマシンのためのアーキテクチャ化された命令フォーマットのエミュレーションを実現する種々の公知の方法、並びに、上述の文献によって用いられる市販のソフトウェアの技術を示す。]
[0076] 図1を参照すると、ホスト・コンピュータ・システム100の代表的なコンポーネントが示される。当該技術分野において公知のコンピュータ・システムにおいて、コンポーネントの他の構成が用いられることもある。] 図1
[0077] ホスト・コンピュータ環境は、好ましくは、ニューヨーク州アーモンクのInternational Business Machines Corporation(IBM(登録商標))によって提供されるz/Architectureに基づく。z/Architectureは、非特許文献1により完全に記載される。z/Architectureに基づくコンピュータ環境は、例えば、いずれもIBM(登録商標)によるeServer(商標)及びzSeries(登録商標)を含む。]
[0078] 代表的なホスト・コンピュータ100は、主記憶(コンピュータ・メモリ102)と通信する1つ又は複数のCPU101と、他のコンピュータ又はSANなどと通信するためのネットワーク110及びストレージ・デバイス111へのI/Oインターフェースと、を含む。CPUは、プログラム・アドレス(仮想アドレス)をメモリの実アドレスへ変換するための動的アドレス変換(DAT)103を有することができる。DATは、典型的には、コンピュータ・メモリ102のブロックへの後のアクセスがアドレス変換の遅延を要しないように変換をキャッシュするためのトランスレーション・ルックアサイド・バッファ(TLB)107を含む。典型的には、キャッシュ109は、コンピュータ・メモリ102とプロセッサ101との間に用いられる。キャッシュ109は、2つ以上のCPUが利用可能な大きなキャッシュと、その大きなキャッシュと各々のCPUとの間のより小さくより早い(より低いレベルの)キャッシュとを有する階層とすることができる。いくつかの実装形態においては、命令のフェッチ及びデータのアクセスのための別個の低レベル・キャッシュを提供するために、より低レベルのキャッシュが分割される。一実施形態においては、命令は、命令フェッチ・ユニット104によってメモリ102からキャッシュ109を介してフェッチされる。命令は、命令デコード・ユニット106においてデコードされ、(いくつかの実施形態においては他の命令と共に)命令実行ユニット108にディスパッチされる。典型的には、例えば、演算実行ユニット、浮動小数点実行ユニット及び分岐命令実行ユニットといったいくつかの実行ユニット108が用いられる。命令は、実行ユニットによって実行され、必要に応じて、命令が特定したレジスタ又はメモリからオペランドにアクセスする。オペランドがメモリ102からアクセス(読み込み又は格納)される場合には、ロード・ストア・ユニット105が、典型的には、実行されている命令の制御下でそのアクセスを処理する。]
[0079] 一実施形態においては、本発明は、(ライセンス内部コード(LIC)、ファームウェア、マイクロ・コード、ミリコード、ピココードなどと呼ばれることがあり、そのいずれも本発明と整合性がある)ソフトウェアによって実施することができる。本発明を具体化するソフトウェア・プログラム・コードは、典型的には、CD-ROMドライブ、テープ・ドライブ又はハード・ドライブのような長期ストレージ媒体111から、コンピュータ・システム100のCPU(中央処理ユニット)101としても知られるプロセッサによってアクセスされる。ソフトウェア・プログラム・コードは、ディスケット、ハード・ドライブ、又はCD-ROMといった、データ処理システムと共に用いられる様々な公知の媒体のいずれかの上に具体化することができる。コードは、そのような媒体上に分散させてもよく、ネットワーク110上の1つのコンピュータ・システムのコンピュータ・メモリ102又はストレージから他のシステムのユーザによって用いられる他のコンピュータ・システムに分散させてもよい。]
[0080] 代替的に、プログラム・コードは、メモリ102内に具体化し、プロセッサ101がプロセッサ・バスを用いてアクセスすることができる。そのようなプログラム・コードは、種々のコンピュータ・コンポーネント及び1つ又は複数のアプリケーション・プログラムの機能及び対話を制御するオペレーティング・システムを含む。プログラム・コードは、通常、高密度ストレージ媒体111から高速メモリ102にページングされ、そこで、プロセッサ101による処理のために利用可能となる。ソフトウェア・プログラム・コードをメモリ内に具体化するための技術及び方法、ソフトウェア・プログラム・コードを物理媒体上に具体化するための技術及び方法、及び/又は、ネットワークを介してソフトウェア・コードを分散させるための技術及び方法はよく知られており、本明細書中ではこれ以上は説明しない。プログラム・コードは、電子メモリ・モジュール(RAM)、フラッシュ・メモリ、コンパクト・ディスク(CD)、DVD、磁気テープなどを含むがこれらに限定されない有形の媒体上に生成され、格納されるときには、「コンピュータ・プログラム製品」と呼ばれることが多い。コンピュータ・プログラム製品媒体は、典型的には、好ましくはコンピュータ・システム内の処理回路によって、その処理回路が実行するために、読み取り可能である。]
[0081] 図2においては、ホスト・アーキテクチャのホスト・コンピュータ・システム100をエミュレートする、エミュレートされたホスト・コンピュータ・システム201の例が提供される。エミュレートされたホスト・コンピュータ・システム201において、ホスト・プロセッサ(CPU)208は、エミュレートされたホスト・プロセッサ(又は仮想ホスト・プロセッサ)であり、ホスト・コンピュータ100のプロセッサ101により用いられるものとは異なるネイティブ命令セット・アーキテクチャを有するエミュレーション・プロセッサ207を含む。エミュレートされたホスト・コンピュータ・システム201は、エミュレーション・プロセッサ207がアクセス可能なメモリ202を有する。実施形態の例においては、メモリ202は、ホスト・コンピュータ・メモリ102の部分と、エミュレーション・ルーチン203の部分とにパーティション化される。ホスト・コンピュータ・メモリ102は、ホスト・コンピュータ・アーキテクチャに従って、エミュレートされたホスト・コンピュータ201のプログラムが利用可能である。エミュレーション・プロセッサ207は、エミュレートされたプロセッサ208の命令ではなく、エミュレーション・ルーチン・メモリ203から取得された、アーキテクチャのアーキテクチャ化された命令セットのネイティブ命令を実行し、アクセスされるホスト命令をデコードしてアクセスされるホスト命令の機能をエミュレートするためのネイティブ命令実行ルーチンを決定することができるSequence&Access/Decodeルーチンにおいて取得される1つ又は複数の命令を使用することによって、ホスト・コンピュータ・メモリ102内のプログラムから実行するためのホスト命令にアクセスすることができる(要再考)。] 図2
[0082] 例えば、汎用レジスタ、制御レジスタ、動的アドレス変換、及びI/Oサブシステム・サポート及びプロセッサ・キャッシュといったファシリティを含む、ホスト・コンピュータ・システム100アーキテクチャのために定められた他のファシリティは、アーキテクチャ化されたファシリティ・ルーチンによってエミュレートすることができる。エミュレーション・ルーチンは、エミュレーション・ルーチンの性能を改善するために、エミュレーション・プロセッサ207において利用可能な(汎用レジスタ、及び、仮想アドレスの動的変換のような)機能を利用することもできる。ホスト・コンピュータ100の機能をエミュレートする際にプロセッサ207を補助するために、特別なハードウェア及びオフロード・エンジンを提供することもできる。]
[0083] トポロジ情報をプログラムに提供するために、二つの命令が用意される。第一は、従来技術の命令であるSTSI(STORE SYSTEMINFORMATION)に対する機能強化であり、第二は、新たな命令であるPTF(PERFORM TOPOLOGY FUNCTION)である。]
[0084] CPUトポロジの概要
新たなIBM eSeriesメインフレームの出現とともに、及びそれ以前でも、マシン編成をノード構造にすることによって、不均一なメモリアクセス(NUMA)挙動(「ランピネス(lumpiness)」と呼ばれることもある)が生じていた。従来技術であるSTSI(STORE SYSTEMINFORMATION)命令の新たなSYSIB 15.1.2機能及び新たなPERFORM TOPOLOGY FUNCTION(PTF)命令の目的は、(キャッシュ-ヒット率の向上を含む)一定の最適化を行い、それにより全体の性能を改善することができるように、付加的なマシン・トポロジをプログラムに認識させることである。マルチ・プロセッシング(MP)ゲスト構成に割り当てられるホストCPUリソースの量は、一般に、構成されたゲストCPUの数に対して均等に配分されてきた。(ゲストCPUは、プログラムに提供される論理CPUであり、全てのゲストCPUは、実際のホストCPU上にパーティション化されたソフトウェア/ハードウェアによってサポートされる。) こうした均等な配分は、特定のゲストCPU(又は、複数のCPU)のいずれも、他の任意に決定されたどのゲストCPUよりもいずれかの予備のホストCPUプロビジョニングに対する権利があるわけではないことを意味する。ゲスト構成のこの条件は、この構成における全てのCPUに影響を及ぼすものであり、「水平極性(horizontalpolarization)」と呼ばれる。水平極性の下においては、ゲストCPUに対するホストCPUの割り当ては、ゲストCPUごとに概ね同量のプロビジョニングである。プロビジョニングが専用ではないときには、ゲストCPUをプロビジョニングする同じホストCPUを用いて、別のゲストのゲストCPUをプロビジョニングすることもできるし、同じゲスト構成の他のゲストCPUをプロビジョニングすることさえできる。]
[0085] 他のゲスト構成が異なる論理パーティションである場合には、ホストCPUは、各々のパーティションでアクティブなときには、多数の再配置ゾーン(relocation zones)にわたってキャッシュを共有しなければならないことによってキャッシュ・ヒット率が低下するため、典型的には、より多く主ストレージにアクセスしなければならない。いくつかのホストCPUが主として、さらには排他的に、所与のゲスト構成に割り当てられる(及び、正常な挙動になる)ように、ホストCPUプロビジョニングのバランスを変えることができる場合には、キャッシュ・ヒット率が向上し、性能も改善される。こうした不均等な配分は、1つ又は複数のゲストCPUが、より少ないホストCPUプロビジョニングに対する権利を有する他の任意に決定されたゲストCPUに対して、予備のホストCPUプロビジョニングに対する権利を有することを意味する。ゲスト構成のこの条件は、この構成における全てのCPUに影響を及ぼすものであり、「垂直極性(vertical polarization)」と呼ばれる。本明細書において提示されるアーキテクチャは、垂直極性を、プロビジョニングの権利の三つのレベル、すなわち、高、中、低に分類する。]
[0086] 高権利(high entitlement)は、ホストCPUの約100%が論理/仮想CPUに割り当てられていることを保証するものであり、アフィニティは、両者の間で強い一致として維持される。論理パーティションのプロビジョニングに関して、垂直極性が有効であるときには、専用CPUの権利は高であると定義される。]
[0087] 中権利(medium entitlement)は、特定されない量のホストCPUリソース(1つ又は複数のホストCPU)が論理/仮想CPUに割り当てられていることを保証するものであり、ホストCPUの残りのキャパシティは、どこにでも割り当てることができるスラックであるとみなされる。利用可能なスラックについての最良のケースは、可能であればスラックをローカル・スラックとして割り当てることである。その利用可能なスラックがリモート・スラックとして割り当てられる場合には、有益性がより低い結果が生じる。中権利の論理CPUに割り当てられるリソースの割合は、高権利設定の100%に近いことと比較して、より融通性のある概算値のケースもある。]
[0088] 低権利(low entitlement)は、ホストCPUの約0%が論理/仮想CPUに割り当てられていることを保証する。しかしながら、スラックが利用可能な場合には、こうした論理/仮想CPUは、依然として多少のCPUリソースを受け取ることができる。極性を用いるネストされたコンテナのモデルは、要求する構成に適用するときにマシンのノード構造に関してあるレベルの知識を与えるように意図されており、その結果、一般に、ホストCPUのクラスタをゲストCPUのクラスタに割り当てることができ、それにより、ストレージの共有と、同一のホストCPU上で実質的に衝突する異なる構成を最小限にすることとを可能な限り改善する。極性及び権利は、ゲスト構成における論理CPUと物理CPUとの関係又は仮想CPUと論理CPUとの関係を示し、ゲスト構成に割り当てられるキャパシティがその構成を含むCPU全体にわたってどのように分配されるかを示す。]
[0089] 歴史的に、ゲスト構成は水平極性とされてきた。どれだけ多くのゲストCPUが構成に定められたとしても、割り当てられるホストCPUリソースは、何らかの権利を与えられることもなく公平に、ゲストCPUの全てにわたって均等に配分されていた。水平極性が有効であるときには、論理パーティションにおける単一の論理CPUの重みは、構成全体の重みをCPUの数で割ったものに概ね等しいということができる。しかしながら、2097とそのファミリー・モデルの導入とともに、ホストCPUリソースを異なる方法で、すなわち、構成の垂直極性と呼ばれる方法で配分できることが不可欠となり、ホストCPUを用いたゲストCPUのプロビジョニングの程度は、高権利、中権利、又は低権利として示される。垂直極性構成の論理/仮想CPUが同じホストCPUによって完全に支援される(backed)ときには、高権利が有効である。垂直極性構成の論理/仮想CPUがホストCPUによって部分的に支援されるときには、中権利が有効である。垂直極性構成の論理/仮想CPUが、利用可能となるスラック・リソースによって利用可能となる可能性があるもの以外にいずれのホストCPUリソースによっても保証されないときには、低権利が有効である。]
[0090] CPUスラック
CPUリソースについて、2種類のスラックCPUリソースが存在する。]
[0091] ローカル・スラックは、構成の論理/仮想CPUが権利を有する全てのリソースを使用していないときに利用可能となり、こうしたスラックは、そのCPUの構成内で用いられる。ローカル・スラックは、スラックが構成内で用いられるときにキャッシュにおけるより良好なヒット率が期待されるため、リモート・スラックより好ましい。
リモート・スラックは、構成の論理/仮想CPUが権利を有する全てのリソースを使用していないときに利用可能となり、こうしたスラックは、そのCPUの構成外で用いられる。リモート・スラックは、キャッシュにおけるヒット率が低いことが予想されるが、論理/仮想CPUを全く稼働させないよりはましである。]
[0092] 目的は、CPUキャッシュ・ヒット率を最大にすることである。論理パーティションについて、物理CPUリソースの量は、各々の論理パーティションに割り当てられるCPUリソースを決定するシステム全体の重みによって決定される。例えば、単一のCPUに相当する物理CPUリソースを割り当てられ、水平極性を有する、論理3−wayMPにおいては、各々の論理CPUは、独立にディスパッチされ、従って約33%の物理CPUリソースを受け取る。同一の構成が垂直極性を有するものとすると、単一の論理CPUのみが稼働し、割り当てられた物理CPUリソースの約100%を受け取る(高権利)が、残りの2つの論理CPUは、通常はディスパッチされない(低権利)。そのようなリソース割り当ては、通常は、概算である。低権利CPUであっても、プログラムがそのようなCPU上でスタックしないことを保証するためだけに、若干のリソースを受け取る。制御プログラムが、極性を認識することを示し、CPUの極性と、垂直極性の場合にはその権利の程度とについて各々のCPUについての指示を受け取るための手段を提供することによって、制御プログラムは、構成の全てのCPUが利用可能であるのに対して一般にCPUに局在すると考えられるデータ構造を、よりインテリジェントに使用することができる。また、そのような制御プログラムは、いずれかの低権利CPUに作業を指示することを避けることができる。割り当てられた実際の物理CPUリソースは、整数のCPUを構成しないこともあり、そのため、MP垂直極性構成における1つ又は複数のCPUが、権利を与えられてはいるがその程度が高くない可能性も存在し、それにより、こうしたCPUは垂直極性における中権利か低権利のいずれかを有することになる。残りのいずれかの低権利CPUは、若干のホストCPUリソースを受け取ることができる。例えば、このことは、こうしたCPUがSIGP命令などを介してターゲットとされ、スラック・ホストCPUリソースが使用可能であるときに、発生することがある。そうでなければ、こうした論理/仮想CPUは、ディスパッチされる能力がある場合でも、ディスパッチされない状態にとどまることがある。]
[0093] 好ましくは、本発明によれば、STORE SYSTEMINFORMATION(STSI)命令の新たなCPUタイプ「トポロジ・リスト・エントリ」(TLE)のために、2ビットの極性フィールドが定められる。CPUごとの垂直極性における権利の程度は、高、中、又は低として示される。割り当ては、正確な割合ではなく、多少ファジーであり、ヒューリスティックなものである。]
[0094] ゲストCPUに重みを再割り当てする手段としての垂直極性に加えて、別の概念が存在し、それは、スラック・キャパシティ(「ホワイト・スペース」とも呼ばれる)の生成及び管理である。スラック・キャパシティは、以下の環境の下で生成される。
・高−垂直CPUは、その平均稼働率(AU)が100パーセント(100−AU)を下回るとき、スラックに寄与する。
・ホストCPUのMパーセントの割り当てプロビジョニングを有する中−垂直CPUは、その平均稼働率(AU)がMパーセント(M−AU>0)を下回るとき、スラックに寄与する。
・低−垂直CPUは、スラックに寄与しない。
・高−垂直CPUは、スラックを消費しない。]
[0095] STORE SYSTEMINFORMATION命令
STORE SYSTEM INFORMATION命令のフォーマットの例示的な実施形態である図3は、オペコード・フィールド「B27D」と、ベース・レジスタ・フィールドB2と、符号付き置換フィールドD2とを含む。命令オペコードは、命令と関連付けられた暗黙汎用レジスタ「0」及び「1」が存在することを、その命令を実行するマシンに知らせる。アドレスは、ベース・フィールドによって特定される汎用レジスタの内容に符号付き置換フィールド値を追加することによって、第2オペランドから得られる。一実施形態においては、ベース・レジスタ・フィールドが「0」であるときには、置換フィールドの符号拡張値は、第2オペランドを特定するために直接用いられる。汎用レジスタ0における機能コードに応じて、STORE SYSTEM INFORMATION命令がフェッチされ実行されるときに、プログラムを実行する構成のレベルの識別情報が汎用レジスタ0に置かれるか、又は、構成の1つ又は複数のコンポーネントに関する情報がシステム情報ブロック(SYSIB)に格納される。1つ又は複数のコンポーネントに関する情報が要求されたときには、その情報は、汎用レジスタ0の更なる内容と、汎用レジスタ1の内容とによって、特定される。SYSIBがある場合には、SYSIBは第2オペランド・アドレスによって指定される。マシンは、1つ、2つ、又は3つのレベルの構成を提供すると考えられる。レベルは以下の通りである。] 図3
[0096] 1.ベーシック・モードで作動しているかのようなマシンであるベーシック・マシン。
2.マシンがLPAR(論理パーティション)モードにおいて作動している場合に提供される論理パーティション。論理パーティションは、マシンの一部であるLPARハイパーバイザによって提供される。ベーシック・マシンは、マシンがLPARモードにおいて作動しているときにも存在する。
3.ベーシック・マシンによって実行されるか又は論理パーティションにおいて実行される仮想マシン(VM)制御プログラムによって提供される仮想マシン。仮想マシン自体は、レベル3構成とも見なされるより高レベルの(ベーシック・マシンからより離れた)仮想マシンを提供するVM制御プログラムを実行することができる。ベーシック・モード、LPARモード、論理パーティション、ハイパーバイザ、及び仮想マシンという用語、並びにそれらの用語に特に関連する他のいずれかの用語は、本公開において定義されず、それらの用語は、マシン・マニュアルにおいて定義される。レベル1構成(ベーシック・マシン)によって実行されているプログラムは、その構成に関する情報を要求することができる。レベル2構成(論理パーティションにおける)によって実行されているプログラムは、論理パーティション及び下層のベーシック・マシンに関する情報を要求することができる。レベル3構成(仮想マシン)によって実行されているプログラムは、仮想マシン及び1つ又は2つの下層レベルに関する情報を要求することができる。すなわち、ベーシック・マシンは常に下層にあり、論理パーティションは、ベーシック・マシンと仮想マシンとの間に存在することもあるし、存在しないこともある。仮想マシンに関する情報が要求されたときには、プログラムを実行する構成に関する情報、及び、仮想マシンの下層にあるいずれか1つ又は複数のレベルに関する情報が提供される。これらの場合のいずれにおいても、レベルが命令を実施する場合に限り、そのレベルに関する情報が提供される。]
[0097] 動作を決定する機能コードは、汎用レジスタ0のビット位置32−35における符号なし2進整数であり、以下のとおりである。
機能コード 要求される情報
0 現在の構成のレベルの数
1レベル1に関する情報(ベーシック・マシン)
2 レベル2に関する情報(論理パーティション)
3 レベル3に関する情報(仮想マシン)
4−14 なし;コードは未使用である
15 現在の構成のレベルの情報]
[0098] 無効な機能コード
プログラムを実行する構成のレベルは、現在レベル(current level)と呼ばれる。ゼロ以外の機能コードによって特定される構成のレベルは、特定レベル(specified level)と呼ばれる。特定レベルの番号が現在レベルより大きいときには、機能コードは無効と呼ばれ、条件コードは3に設定され、(チェックを含む)他のアクションは行われない。]
[0099] 有効な機能コード
機能コードは、現在レベルの数字と等しいか又はそれより小さいときには、有効と呼ばれる。この場合には、汎用レジスタ0のビット36−55及び汎用レジスタ1のビット32−47は、ゼロ又は15でなければならず、さもなければ、指定例外(specification exception)が認識される。汎用レジスタ0及び1のビット0−31は、常に無視される。機能コードが0のときには、現在の構成のレベルを特定する符号なし2進整数(ベーシック・マシンの1、論理パーティションの2、又は仮想マシンの3)は、汎用レジスタ0のビット位置32−35に置かれ、条件コードは0に設定され、さらなるアクションは行われない。機能コードが有効で、ゼロ以外のときには、汎用レジスタ0及び1は、以下のように、要求される情報に関する追加の指定を含む。]
[0100] ・汎用レジスタ0のビット位置56−63は、特定構成の1つ又は複数のコンポーネントを特定する、セレクタ1と呼ばれる符号なし2進整数を含む。
・汎用レジスタ1のビット位置48−63は、要求される情報のタイプを特定する、セレクタ2と呼ばれる符号なし2進整数を含む。
汎用レジスタ0及び1の内容は、図4に示される。] 図4
[0101] 機能コードが有効で、ゼロ以外のときには、第2オペランドの場所で開始するシステム情報ブロック(SYSIB)に情報を格納することができる。SYSIBは、4Kバイトであり、4Kバイト境界で開始しなければならず、さもなければ、セレクタ1及びセレクタ2、並びに、SYSIBへの参照に起因するアクセス例外(access exceptions)が認識されるかどうかに応じて、指定例外が認識されることがある。]
[0102] セレクタ1は以下のような値を持つことができる。
セレクタ1 要求される情報
0 なし;セレクタは未使用である
1機能コードによって特定される構成レベルに関する情報
2 特定される構成レベルにおける1つ又は複数のCPUに関する情報
3−255 なし;セレクタは未使用である]
[0103] セレクタ1が1のときには、セレクタ2は以下のような値を持つことができる。
セレクタ1が1の
ときのセレクタ2 要求される情報
0 なし;セレクタは未使用である
1 特定される構成レベルに関する情報
2 特定される構成レベルに関するトポロジ情報
3−65,535 なし;セレクタは未使用である]
[0104] セレクタ1が2のときには、セレクタ2は以下のような値を持つことができる。
セレクタ1が2の
ときのセレクタ2 要求される情報
0 なし;セレクタは未使用である
1 特定される構成レベルにおいてプログラムを実行するCPUに関 する情報
2 特定される構成レベルにおける全てのCPUに関する情報
3−65,535 なし;セレクタは未使用である
図5に示されるように、機能コード、セレクタ1、及びセレクタ2の特定の組み合わせのみが有効である。] 図5
[0105] 機能コード、セレクタ1、及びセレクタ2の特定の組み合わせが無効である(図5において示されるもの以外である)とき、或いは、特定されるレベルが命令を実行しないか若しくは完全には実行しないため又はレベルの必要な部分がアンインストールされたか若しくは初期化されていないために、組み合わせは有効ではあるが要求される情報が利用不可能である場合には、例外が認識されない条件で、条件コードが3に設定される。機能コードがゼロ以外のときには、組み合わせは有効であり、要求される情報は使用可能であり、要求される情報は、例外なく第2オペランド・アドレスにおいてシステム情報ブロック(SYSIB)に格納される。] 図5
[0106] SYSIBのいくつか又は全ては、格納される前にフェッチすることができる。
SYSIBは、「fc」、「s1」、及び「s2」をそれぞれ機能コード、セレクタ1、及びセレクタ2の値とすると、「SYSIB fc.s1.s2」を用いて参照において識別することができる。]
[0107] 以下の項に、図及び関連するテキストを用いて、定められたSYSIBを記載する。図において、左に示されるオフセットはワード値である(1ワードは4バイトからなる)。「構成」は、機能コードによって特定される構成レベル(情報が要求される構成レベル)をいう。]
[0108] SYSIB 1.1.1(ベーシック・マシン構成)
SYSIB 1.1.1は、図6に示されるフォーマットを有し、フィールドは以下の意味を有する。
未使用(reserved):ワード0−7、13−15、及び29−63の内容は、未使用であり、ゼロとして格納される。ワード64−1023の内容は未使用であり、ゼロとして格納するか又は不変とすることができる。
製造者(Manufacturer):ワード8−11は、構成の製造者の16文字(0−9又は大文字A−Z)EBCDIC名を含む。この名前は、必要に応じて末尾の空白を用いて左詰めされる。
タイプ:ワード12は、構成の4文字(0−9)EBCDICタイプ番号を含む。(これは、STORE CPU IDの定義においてマシンタイプ番号と呼ばれる。)
モデル・キャパシティ識別子(Model-Capacity Identifier):ワード16−19は、構成の16文字(0−9又は大文字A−Z)EBCDICモデル・キャパシティ識別子を含む。モデル・キャパシティ識別子は、必要に応じて末尾の空白を用いて左詰めされる。
連続コード(Sequence Code):ワード20−23は、構成の16文字(0−9又は大文字A−Z)EBCDIC連続コードを含む。連続コードは、必要に応じて先頭のEBCDICゼロを用いて右詰めされる。
製造プラント(Plant of Manufacture):ワード24は、構成の製造プラントを識別する4文字(0−9又は大文字A−Z)EBCDICコードを含む。コードは、必要に応じて末尾の空白を用いて左詰めされる。
モデル(Model):ワード25が2進数のゼロではないときに、ワード25−28は、構成の16文字(0−9又は大文字A-Z)EBCDICモデル識別情報を含む。モデル識別情報は、必要に応じて末尾の空白を用いて左詰めされる。(これは、STORE CPU IDのページ10−111のプログラミング・ノート4においてモデル番号と呼ばれる。) ワード25が2進数のゼロのときには、ワード16−19の内容は、モデル・キャパシティ識別子及びモデルの両方を表す。] 図6
[0109] プログラミング・ノート
1.SYSIB 1.1.1のフィールドは、刊行物Common I/O-Device Commandsand Self Descriptionに記載されるノード記述子のフィールドと類似している。しかしながら、SYSIBフィールドの内容は、SYSIBフィールドが、
・より多くの文字を許容する
・許容される文字のタイプに関して、より融通性がある
・フィールド内部で異なって揃えられる情報を提供する
・連続コード・フィールドのようなフィールドの内容を決定するために同一の方法を用いることができない
という理由により、対応するノード記述子フィールドの内容と同一ではない場合がある。
2.ノード記述子におけるモデル・フィールドは、STSIモデル・フィールドの内容に対応し、STSIモデル・キャパシティ識別子フィールドには対応しない。
3.モデル・フィールドは、マシンのモデル(即ち、物理モデル)を特定し、モデル・キャパシティ識別子フィールドは、モデルについてのシステム・ライブラリのパブリケーションにキャパシティ又は性能の命令文を配置するのに用いることができるトークンを特定する。]
[0110] SYSIB 1.2.1(ベーシック・マシンCPU)
SYSIB 1.2.1は、図7に示されるフォーマットを有し、フィールドは以下の意味を有する。

未使用:ワード0−19、ワード25のバイト0及び1、並びに26−63の内容は、未使用であり、ゼロとして格納される。ワード64−1023の内容は、未使用であり、ゼロとして格納するか又は不変することができる。
連続コード:ワード20−23は、構成の16文字(0-9又は大文字A-Z)EBCDIC連続コードを含む。コードは、必要に応じて先頭のEBCDICゼロを用いて右詰めされる。
製造プラント:ワード24は、構成の製造プラントを識別する4文字(0-9又は大文字A-Z)EBCDICコードを含む。コードは、必要に応じて末尾の空白を用いて左詰めされる。
CPUアドレス:ワード25のバイト2及び3はCPUアドレスを含み、そのアドレスによって、このCPUがマルチ・プロセッシング構成において識別される。CPUアドレスは、16ビット符号なし2進整数である。CPUアドレスは、プログラムがベーシック・モードで動作しているマシンによって実行されるときにSTORE CPU ADDRESSによって格納されるものと同一である。] 図7
[0111] プログラミング・ノート
同一の構成における多数のCPUは、同一の連続コードを有しており、固有のCPU識別を確立するために、CPUアドレスのような他の情報を用いることが必要である。ベーシック・マシンCPU及び論理パーティションCPUについて戻される連続コードは、同一であり、ベーシック・マシン構成について戻される連続コードと同一の値を有する。]
[0112] SYSIB 1.2.2(ベーシック・マシンCPU)
ワード0のバイト0におけるフォーマット・フィールドは、SYSIBのフォーマットを決定する。フォーマット・フィールドがゼロの値を持つときには、SYSIB 1.2.2は、図8に示されるようなフォーマット−0レイアウトを有する。フォーマット・フィールドが1の値を持つときには、SYSIB 1.2.2は、図9に示されるようなフォーマット−1レイアウトを有する。] 図8 図9
[0113] 未使用:
フォーマット・フィールドがゼロの値を含むとき、ワード0及びワード1−6のバイト1−3の内容は、未使用であり、ゼロとして格納される。フォーマット・フィールドが1の値を含むとき、ワード0及びワード1−6のバイト1の内容は、未使用であり、ゼロとして格納される。全てのCPUについての情報を含むために64ワードより少ないワードで十分であるときには、フォーマット−0 SYSIBにおける調整因子リストに続くワード63までのSYSIBの部分、又は、フォーマット−1 SYSIBにおける代替調整因子リストに続くワード63までのSYSIBの部分は、未使用であり、ゼロとして格納される。ワード64−1023の内容は、未使用であり、ゼロとして格納するか又は不変とすることができる。全てのCPUについての情報を含むために64ワード又はそれ以上のワードが必要なときには、フォーマット−0 SYSIBにおける調整因子リストに続くワード1023までのSYSIBの部分、又は、フォーマット−1 SYSIBにおける代替調整因子リストに続くワード1023までのSYSIBの部分は、未使用であり、ゼロとして格納するか又は不変とすることができる。]
[0114] フォーマット:
ワード0のバイト0は、SYSIB 1.2.2のフォーマットを特定する8ビット符号なし2進整数を含む。]
[0115] 代替CPU能力オフセット:
フォーマット・フィールドが1の値を持つとき、ワード0のバイト2−3は、SYSIBにおける代替CPU能力フィールドのバイトのオフセットを特定する16ビット符号なし2進整数を含む。]
[0116] 第2のCPU能力:
ワード7は、ゼロではないときに構成における特定のタイプのCPUに適用することができる第2の能力を特定する、32ビット符号なし2進整数を含む。この整数を生成するのに用いられるアルゴリズムの公式的な記述は、CPU能力を生成するのに用いられるアルゴリズムと同一ものを除いて存在しない。この整数は、他のCPUモデルの能力及びモデル内の他のCPUタイプの能力と比較した、CPUの能力の指標として用いられる。能力の値は、構成における1つ又は複数の適用可能なCPUタイプのCPUの各々に適用する。すなわち、適用可能な1つ又は複数のタイプの構成における全てのCPUは、同一の能力を有する。値がゼロのときには、構成におけるいずれかのCPUタイプの全てのCPUは、CPU能力によって特定される能力と同一の能力を有する。第2のCPU能力は、CPU能力の値と同一の値の場合もあるし、そうでない場合もある。マルチ・プロセッシングCPU能力調整因子は、能力が第2のCPU能力によって特定されるCPUにも適用される。]
[0117] CPU能力:
ワード8のビット0−8がゼロの場合には、ワードは、構成におけるCPUの1つの能力を特定する範囲0<I<223の32ビット符号なし2進整数(I)を含む。ワード8のビット0−8がゼロ以外の場合には、ワードは、32ビット符号なし2進整数の代わりに、32ビット2進浮動小数点ショート・フォーマット数を含む。符号化に関わらず、より低い値は、比例的により高いCPU能力を示す。その上、この値を生成するのに用いられるアルゴリズムの公式的な記述は存在しない。値は、他のCPUモデルの能力と比較したCPUの能力の指標として用いられる。能力の値は、構成における第2のCPU以外の各々に適用される。すなわち、構成における第2のCPU以外の全ては、同一の能力を有する。]
[0118] 全CPUカウント:
ワード9のバイト0及び1は、構成におけるCPUの全数を特定する16ビット符号なし2進整数を含む。この数は、構成状態(configured state)、待機状態(standby state)、又は未使用状態(reserved state)にある全てのCPUを含む。]
[0119] 構成CPUカウント:
ワード9のバイト2及び3は、構成状態にあるCPUの数を特定する16ビット符号なし2進整数を含む。CPUは、構成内に存在し、プログラムを実行するのに用いることが可能であるとき、構成状態にある。]
[0120] 待機CPUカウント:
ワード10のバイト0及び1は、待機状態にあるCPUの数を限定する16ビット符号なし2進整数を含む。CPUは、構成内にあり、プログラムを実行するのに用いられることができず、構成状態にする命令を発行することによって利用可能にすることができるときには、待機状態にある。]
[0121] 未使用CPUカウント:
ワード10のバイト2及び3は、未使用状態にあるCPUの数を特定する16ビット符号なし2進整数を含む。CPUは、構成内にあり、プログラムを実行するのに用いられることができず、構成状態にする命令を発行することによって利用可能にすることができないときには、未使用状態にある。(マニュアル動作によって未使用CPUを待機状態又は構成状態にすることが可能である)]
[0122] マルチ・プロセッシングCPU能力調整因子:
SYSIBは、ワード11のバイト0及び1で始まり、一連の連続する2バイト・フィールドを含み、各々のフィールドは、CPU能力フィールドに含まれる値についての調整因子(分数)を形成するのに用いられる16ビット符号なし2進整数を含む。そのような分数は、以下の方法の一つに従って、最初の2バイト・フィールドの値(V)を用いることによって作られる。
・Vが0<V≦100の範囲にある場合には、分母100が示され、分数V/100を生成する。
・Vが101≦V<255の範囲にある場合には、分母255が示され、分数V/255を生成する。
・Vが255≦V≦65,536の範囲にある場合には、分母65,536が示され、分数V/65,536を生成する。]
[0123] このように、示された分母で2バイト・フィールドの内容を割ることによって、各々の2バイト・フィールドにより表現される分数が作られる。調整因子フィールドの数は、全CPUカウント・フィールドにおいて特定されるCPUの数より1つ少ない。調整因子フィールドは、構成状態にあるCPUの数を増加させた構成に対応する。第1の調整因子フィールドは、構成状態にある2つのCPUを持つ構成に対応する。連続する調整因子フィールドの各々は、前のフィールドの数より1つ多い、構成状態にあるCPUの数を持つ構成に対応する。]
[0124] 代替CPU能力:
フォーマット・フィールドが値1を有するとき、ワードNのビット0-8がゼロの場合には、ワードは、構成におけるCPUの一つの公表された能力を特定する0≦I<223の範囲の32ビット符号なし2進整数(I)を含む。ワードNのビット0-8がゼロ以外の場合には、ワードは、32ビット符号なし2進整数の代わりに、32ビット2進浮動小数点ショート・フォーマット数を含む。符号化に関わらず、より低い値は、比例的により高いCPU能力を示す。その上、この値を生成するのに用いられるアルゴリズムの公式的な記述は存在しない。値は、他のCPUモデルの公表された能力と比較した、CPUの公表された能力の指標として用いられる。代替能力の値は、構成におけるCPUの各々に適用する。すなわち、構成における全てのCPUは、同一の代替能力を有する。]
[0125] 代替マルチ・プロセッシングCPU能力調整因子:
SYSIBは、ワードN+1のバイト0及び1で始まり、一連の連続する2バイト・フィールドを含み、各々のフィールドは、代替CPU能力フィールドに含まれる値についての調整因子(分数)を形成するのに用いられる16ビット符号なし2進整数を含む。そのような分数は、以下の方法の一つに従って、最初の2バイト・フィールドの値(V)を用いることによって作られる。
・Vが0<V≦100の範囲にある場合には、分母100が示され、分数V/100を生成する。
・Vが101≦V<255の範囲にある場合には、分母255が示され、分数V/255を生成する。
Vが255≦V≦65,536の範囲にある場合には、分母65,536が示され、分数V/65,536が生成される。]
[0126] このように、示された分母で2バイト・フィールドの内容を割ることによって、各々の2バイト・フィールドにより表現される分数が作られる。代替調整因子フィールドの数は、全CPUカウント・フィールドにおいて特定されるCPUの数より1つ少ない。代替調整因子要素フィールドは、構成状態にあるCPUの数を増加させた構成に対応する。第1の代替調整因子フィールドは、構成状態にある2つのCPUを持つ構成に対応する。連続する代替調整因子フィールドの各々は、前のフィールドの数より1つ多い、構成状態にあるCPUの数を持つ構成に対応する。]
[0127] SYSIB 15.1.2 (構成トポロジ)
SYSIB 15.1.2は、図10に示されるフォーマットを有する。フィールドは、以下の意味を有する。
未使用:ワード0のバイト0-1、ワード2のバイト2、及びワード3の内容は、未使用であり、ゼロとして格納される。ワードN-1023の内容は未使用であり、ゼロとして格納するか又は不変とすることができる。
長さ:ワード0のバイト2-3は、16ビット符号なし2進整数を含み、その値は、SYSIB 15.1.2全体のバイトのカウントである。トポロジ・リストのみの長さは、ワード0のバイト2−3における長さの値から16を引くことによって求められる。図10におけるNは、式N=長さ/4の値を求めることによって決定される。
Mag1-6: ワード及びワードのバイト0-1は、6つの1バイト・フィールドを構成し、各々のバイトの内容は、対応するネスティング・レベルにおけるコンテナ・タイプ・トポロジ・リスト・エントリ(TLE)又はCPUタイプTLEの最大数を示す。CPUタイプTLEは、常に、Mag1レベルのみにおいてみられる。さらに、Mag1の値は、Mag2レベルのコンテナ・タイプTLEによって表すことができるCPUの最大数も特定する。ネスティング・レベルの値が1より大きいときには、Mag1レベルより上の含んでいるネスティング・レベルは、コンテナ・タイプTLEのみによって占有される。トポロジの動的変更によって、Mag1レベルにおけるTLEの数とCPUの数とが変わることがあるが、Mag1-6フィールドの値によって表される上限は、マシンのモデル・ファミリー内で変化しない。] 図10
[0128] トポロジは、エントリの構造化リストであり、エントリは、1つ又は複数のCPUを定めるか、そうでなければネスティング構造に関するものである。以下に、マグニチュード・フィールドの意味を示す。]
[0129] マシンの全てのCPUが同等であり、全体としての中央処理複合体自体以外に収容構造が存在しないときには、ネスティング・レベルの値は1であり、Mag1は唯一のゼロ以外のマグニチュード・フィールドであり、格納されたCPUタイプTLEの数はMag1の値を超えない。]
[0130] マシンの全てのCPUが、1つのレベルの収容状態が存在するように同等のグループに分割されるときには、ネスティング・レベルの値は2であり、Mag1及びMag2のみがゼロ以外のマグニチュード・フィールドであり、格納されるコンテナ・タイプTLEの数はMag2の値を越えず、各々のコンテナ内の格納されるCPUタイプTLEの数はMag1の値を超えない。]
[0131] ネスティング・レベルの値が3-6の範囲にあるときには、Mag3-6バイトが同様に用いられるようになる(右から左の向きに進む)。]
[0132] MNest:ワード2のバイト3は、ゲスト・プログラムが残存できるようにし続けながら構成を拡張することができるトポロジのネスティング・レベルを特定する。最大のMNest値は6であり、最小は1である。MNestが1の場合には、実際のTLEネスティング構造は存在せず、Mag1はMag1-6の範囲で唯一のゼロ以外のフィールドであり、CPUタイプTLEのみがトポロジ・リストに表される。MNestの値は、ワード2のバイトにおけるマグニチュード・フィールドから始まり、Mnestが1より大きいときには左に進む、ゼロ以外のマグニチュード値の数を示しており、残りのマグニチュード・フィールドはゼロとして格納される、
MNestの値は、可能な最大のネスティングである。いかなる動的構成変更も、この上限を越えない。]
[0133] トポロジ・リスト:図10におけるワード4からN−1の範囲は、1つ又は複数のトポロジ・リスト・エントリ(TLE)のリストを特定する。各々のTLEは、8バイト・フィールド又は16バイト・フィールドであるため、Nは偶数のワードであり、当然のことながら、TLEは、常にダブルワード境界で始まる。] 図10
[0134] トポロジ・リスト・エントリ:トポロジ・リストにおける第1のTLEは、MNest−1に相当するネスティング・レベルで開始する。トポロジ・リスト全体は、SYSIB 15.1.2を特定するSTSI命令の発行元の構成を表しており、最も外側のコンテナTLEエントリは、リスト全体及び構成全体と重複するため、使用されない。したがって、最も高いネスティング・レベルは、単一のピア・コンテナより多いコンテナを有する。]
[0135] 図11及び図12は、TELのタイプを示しており、フィールドは以下の定義を有する。
ネスティング・レベル(NL):ワード0のバイト0は、TLEのネスティング・レベルを特定する。
NL 意味
────────────────────────────────────────
0 TLEはCPUタイプTLEである。
1−5 TLEはコンテナ・タイプTLEである。トポロジ・リスト又は親コンテナ(parentcontainer)に格納された第1のコンテナ・タイプTLEは、1−255の範囲においてコンテナIDを有する。同じ親コンテナの中に兄弟コンテナ(sibling container)が存在する場合には、それらのコンテナは、連続する場合もしない場合もあるコンテナIDの昇順に最大値255まで進む。
06−FF未使用] 図11 図12
[0136] 兄弟TLEは、直近の親がTLEではなくトポロジ・リストであるため、直近の親TLEのネスティング・レベルから1を引いた値又はMNestから1を引いた値のいずれかと等しい、同じネスティング・レベルの値を有する。]
[0137] 未使用,0:コンテナ・タイプTLEの場合は、ワード0のバイト1-3及びワード1のバイト0-2は、未使用であり、ゼロとして格納される。CPUタイプTLEの場合は、ワード0のバイト1−3及びワード1のビット0−4は、未使用であり、ゼロとして格納される。]
[0138] コンテナID:
コンテナ・タイプTLEのワード1のバイトは、ゼロ以外の8ビット符号なし2進整数を特定し、その値は、コンテナの識別子である。TLEについてのコンテナIDは、同一の親コンテナ内部で一意である。]
[0139] 専用状態(D):
CPUタイプTLEのワード1のビット5は、1のとき、TLEによって表される1つ又は複数のCPUが専用であることを示す。Dがゼロのときには、TLEの1つ又は複数のCPUは専用ではない。]
[0140] 極性(PP):
CPUタイプTLEのワード1のビット6−7は、極性の値を特定し、極性が垂直のときには、TLEによって表される対応する1つ又は複数のCPUの権利(高、中、低)とも呼ばれる垂直極性の程度を特定する。以下の値が用いられる。
PP 意味
0 TLEにより表される1つ又は複数のCPUは水平極性である。
1 TLEにより表される1つ又は複数のCPUは垂直極性である。権利は低である。
2 TLEにより表される1つ又は複数のCPUは垂直極性である。権利は中である。
3 TLEにより表される1つ又は複数のCPUは垂直極性である。権利は高である。]
[0141] 極性は、共有ホスト・プロセッサを用いる論理及び仮想マルチ・プロセッシング構成おいて唯一重要なものであり、構成に割り当てられるリソースが構成のCPU全体にわたってどのように適用されるかに対応する。水平極性が有効であるときには、構成の各々のCPUは、ほぼ同量のリソースを保証される。垂直極性が有効であるときには、構成のCPUは、3つのレベルのリソース権利、すなわち、高、中、及び低に分類される。]
[0142] サブシステムのリセット及びESA/390モードを特定するSIGPセット・アーキテクチャ・オーダの実行成功のいずれによっても、構成及びそのCPUの全ては水平極性になる。直接に影響を受けるCPUは、構成状態のCPUである。待機状態のCPUが構成されたときには、CPUは、構成の現在の極性を獲得し、その構成のトポロジ変更を認識させる。]
[0143] 専用CPUは、水平極性又は垂直極性のいずれかである。専用CPUが垂直極性のときには、権利は常に高である。したがって、Dが1のときには、PPは、2進数00又は2進数11のいずれかである。]
[0144] CPUタイプ:
CPUタイプTLEのワード1のバイト1は、8ビット符号なし2進整数を特定し、その値は、TLEによって表される1つ又は複数のCPUのCPUタイプである。CPUタイプの値は、一次CPUタイプ、又は、可能な二次CPUタイプのうちのいずれか1つのどちらか一方を特定する。]
[0145] CPUアドレス起点(CPU-Address Origin):
CPUタイプTLEのワード1のバイト2−3は、16ビット符号なし2進整数を特定し、その値は、CPUマスクによって表されるCPUの範囲における最初のCPUのCPUアドレスであり、その存在は、CPUマスクにおけるビット位置0の値によって表される。CPUアドレス起点は、64で均等に分けられる。CPUアドレス起点の値は、CPUマスクにおけるビット位置0によって表されるCPU上で実行されたときにSTORE CPU ADDRESS(STAP)命令によって格納される値と同一である。]
[0146] CPUマスク:
CPUタイプTLEのワード2-3は、各々のビット位置がCPUを表す64ビット・マスクを特定する。CPUアドレス起点フィールドの値と、CPUマスクにおけるビット位置とを加えたものは、対応するCPUについてのCPUアドレスと等しい。CPUマスク・ビットがゼロのときには、対応するCPUはTLEによって表されない。CPUは、構成に存在しないか、又は、別のCPUタイプTLEによって表されなければならない。CPUマスク・ビットが1のときには、対応するCPUは、TLEによって特定される修飾子属性値を有し、構成のトポロジに存在しており、トポロジの他のいずれのTLEにも存在しない。]
[0147] したがって、例えば、CPUアドレス起点の値が64であり、CPUマスクのビット位置15が1の場合には、CPU79は、構成に存在し、TLEによって特定されるCPUタイプ、極性、権利、及び専用状態を有する。]
[0148] TLE順序付け:
CPUタイプTLEに適用される修飾子の属性は、CPUタイプ、極性、権利、及び専用状態である。極性及び(垂直極性の場合の)権利は、4つの可能な値(水平、垂直−高、垂直−中、及び垂直−低)を持つが、単一の属性と見なされる。]
[0149] 単一のCPUTLEは、全てが同一の修飾子属性値を有する64ものCPUを表すのに十分である。]
[0150] 64より多いCPUが存在するか又はCPUアドレスの全範囲が単一のCPUアドレス起点によってカバーされず、修飾子の属性が一定であるときには、別個の兄弟CPUTLEが、必要に応じて、CPUアドレス起点の昇順でCPUアドレス起点ごとに格納される。これらの格納されたTLEの各々は、代表される少なくとも1つのCPUを有する。1つ又は複数のこうしたCPU TLEの集合は、CPU−TLEセットと呼ばれる。]
[0151] 多数のCPUタイプが存在するときには、別個のCPU-TLEセットが、CPUタイプの昇順でCPUタイプごとに格納される。]
[0152] 多数の極性及び権利の値が存在するときには、別個のCPU−TLEセットが、極性値及び程度の降順(垂直高、中、低、水平)で極性値及び程度ごとに格納される。存在するときには、所与のCPUタイプの全ての極性CPU−TLEセットは、次のCPUタイプの次のCPU−TLEセットの前に格納される。]
[0153] 専用CPUと非専用CPUの両方が存在するときには、別個のCPU-TLEセットが、CPUごとに、専用CPUについてのCPU−TLEセットが非専用CPUについてのCPU−TLEセットの前に現れるように格納される。全てのTLEは、深さ優先トラバーサル(depth-first traversal)を仮定して順序付けられ、大から小のソート順は以下のとおりである。
1.CPUタイプ
a.最も低いCPUタイプ値
b.最も高いCPUタイプ値
2.極性−権利
a.垂直高
b.垂直中
c.垂直低
d.水平
3.専用(適用可能の場合)
a.専用
b.非専用]
[0154] CPUアドレス起点と、親コンテナ内の兄弟CPUTLEの修飾子属性とによる順序付けは、最高から最低に向かって並ぶ以下のリストに従って行われる。
1.最低CPUタイプ値のCPU-TLEセット,垂直高,専用
2.最低CPUタイプ値のCPU-TLEセット,垂直高,非専用
3.最低CPUタイプ値のCPU-TLEセット,垂直中,非専用
4.最低CPUタイプ値のCPU-TLEセット,垂直低,非専用
5.最低CPUタイプ値のCPU-TLEセット,水平,専用
6.最低CPUタイプ値のCPU-TLEセット,水平,非専用
7.最高CPUタイプ値のCPU-TLEセット,垂直高,専用
8.最高CPUタイプ値のCPU-TLEセット,垂直高,非専用
9.最高CPUタイプ値のCPU-TLEセット,垂直中,非専用
10.最高CPUタイプ値のCPU-TLEセット,垂直低,非専用
11.最高CPUタイプ値のCPU-TLEセット,水平,専用
12.最高CPUタイプ値のCPU-TLEセット,水平,非専用]
[0155] 他のTLEルール:
コンテナ・タイプTLEは、1-5の範囲のネスティング・レベルに位置する。
CPUタイプTLEは、ネスティング・レベル0に位置する。]
[0156] トポロジ・リスト又は所与の親コンテナにおける兄弟コンテナ・タイプTLEの数は、兄弟に対応するネスティング・レベルのマグニチュード・バイト(Mag2-6)の値を越えない。]
[0157] 親コンテナの1つ又は複数のCPUタイプTLEによって表されるCPUの数は、Mag1マグニチュード・バイトの値を超えない。]
[0158] TLEの内容は以下のとおりである。
TLEがコンテナ・タイプTLEである場合には、その内容は、1つ又は複数の子TLEを含む親TLEに直接続くリストであり、各々の子TELは、親TLE又はトポロジ・リストの最後のネスティング・レベルより1少ないネスティング・レベルを有する。TLEがCPUタイプTLEの場合には、その内容は、CPU TLEの他のフィールドによって識別される1つ又は複数のCPUである。]
[0159] ネスティング・レベルにおける最初のTLEがCPUエントリのときには、最大ネスティング・レベル0となる。]
[0160] プログラミング・ノート:
トポロジ・リストの可能な検査プロセスを説明する。トポロジ・リストの検査が開始される前に、現行TLE(currnetTLE)ポインタが、トポロジ・リストの最初すなわち一番上のTLEを参照するように初期化され、先行TLE(priorTLE)ポインタがヌルに初期化され、上から下の順にTLEが検査される。]
[0161] トポロジ・リストの検査が進行するにつれて、現行TLEポインタは、それが示す現行TLEのサイズだけ現行TLEポインタの値を増加させることによって進む。コンテナ・タイプTLEは、現行TLEポインタに8を加えることによって進む。CPUタイプTLEは、現行TLEポインタに16を加えることによって進む。現行TLEポインタを進めるプロセスは、現行TLEポインタの値が増加する前に、その値を先行TLEポインタとして保存することを含む。TLEの検査は、トポロジ・リストがTLEを持たない場合には行われない。]
[0162] 検査プロセスは、以下のステップで概説される。
1.現行TLEのネスティング・レベルがゼロであり、先行TLEのネスティング・レベルがヌル又は1である場合には、現行TLEは、1つ又は複数のCPUタイプTLEのグループのうち第1のCPUタイプTLEを表す。プログラムは、1つ又は複数のCPUの新しいグループが最初に見つかったときに適したいかなるアクションも行うべきである。ステップ5に進む。]
[0163] 2.現行TLEのネスティング・レベルがゼロであり、先行TLEのネスティング・レベルがゼロである場合には、現行TLEは、ステップ1又は2において以前に見つかったCPUの兄弟を表すCPUタイプTLEのグループの次のCPUタイプTLEを表す。プログラムは、1つ又は複数のCPUの既存の兄弟グループのサイズが増大したときに適したいかなるアクションも行うべきである。ステップ5に進む。]
[0164] 3.現行TLEのネスティング・レベルがゼロではなく、先行TLEのネスティング・レベルがゼロの場合には、先行TLEは、1つ又は複数のCPUタイプTLEのグループのうち最後又は唯一のCPUタイプTLEを表す。プログラムは、1つ又は複数のCPUの既存のグループが完了したときに適したいかなるアクションも行うべきである。ステップ5に進む。]
[0165] 4.ステップ5に進む。
除外することによって、これは、現行TLEのネスティング・レベルがゼロではなく、先行TLEのネスティング・レベルがゼロでない場合である。現行TLEのネスティング・レベルが先行TLEのネスティング・レベルより小さい場合には、トポロジ・リスト・トラバーサルの方向は、CPUタイプTLEに向かう方向である。現行TLEのネスティング・レベルが先行TLEのネスティング・レベルより大きい場合には、トポロジ・リスト・トラバーサルの方向は、CPUタイプTLEから離れる方向である。コンテナ・タイプTLEは、トラバースされ、以下のいずれか、すなわち、(1)トポロジ全体における別個のグループであるCPUタイプの別のグループ、又は、(2)トポロジ・リストの最後、に至る。いずれの場合においても、次のTLEに進む以外には、特定の処理は必要とされない。]
[0166] 5.現行TLEのタイプに基づいて、次のTLE位置に進む。進められた現行TLEポインタが、トポロジ・リストの最後に相当する場合には、
a.いずれのタイプのTLEもそれ以上存在しない。
b.先行TLEのネスティング・レベルがゼロの場合には、プログラムは、1つ又は複数のCPUの既存のグループが完了したときに適したいかなるアクションも行うべきである。
c.検査は完了する。
そうでなければ、ステップ1に進む。]
[0167] 例示的な実装形態である図19において、コンピュータ・システムは、2つの物理フレーム(フレーム1及びフレーム2)を含む。各々のフレームは、2つのロジック・ボード(ボード1及びボード2)と、主ストレージ(メモリ)と、周辺装置及びネットワークと通信するためのI/Oアダプタ(I/Oチャネル1及びI/Oチャネル2)とを含む。各々のボードは、2つのマルチチップ・モジュール(Mod1、Mod2、Mod3及びMod4)を含む。各々のマルチチップ・モジュールは、2つのプロセッサ(CPU1、CPU2、CPU3、CPU4、CPU5、CPU6 CPU7及びCPU8)を含む。各々のモジュールは、2次キャッシュ(キャッシュ1、キャッシュ2、キャッシュ3及びキャッシュ4)も含む。各々のプロセッサ(中央処理ユニット又はCPU)は、1次キャッシュ及びトランスレーション・ルックアサイド・バッファ(TLB)を含む。TLBは、動的アドレス変換の際にアドレス変換情報を格納する。] 図19
[0168] 本発明によれば、図20、21及び22において、コンピュータ・システムのコンポーネントは、近接性に応じて「コンテナ」に割り当てられる。各々のモジュールは、各々のモジュールのCPUが互いに最も近接性が高いため、最も内側のコンテナ6、7、8及び9に割り当てられる。モジュールはボード上にパッケージされるため、それぞれのボードのモジュールは、次のレベルのコンテナ4及び5に割り当てられる。次に近接性が高いグループは、フレームである。フレームのボードは、フレームを表すコンテナに割り当てられる(コンテナ2及び3)。全体のシステムは、コンテナ1によって表される。] 図20
[0169] CPU1及びCPU2のような同一のモジュール上の2つのCPUは、互いに最も近いトポロジ関係又は距離であり、いずれも1つのコンテナ(コンテナ6)に属し、それらのCPUのみが関与するときにはコンテナ境界は交差しないことが理解できる。しかしながら、CPU1及びCPU8が関与する場合には、交差する4つのコンテナ境界が存在する。コンテナ6のCPU1は、コンテナ4、5及び9によってCPU8から隔てられる。従って、コンテナ構造を知ることで、ユーザは、システムのトポロジの考え方を得ることができる。]
[0170] 当然のことながら、論理パーティション化されたシステムにおいては、CPUは、前述のようにオペレーティング・システム間で共有されることがある。したがって、論理パーティションが3つの論理CPUを割り当てられ、各々の論理CPUが3つの実CPUの各々の20%に割り当てられた場合には、CPUとCPUリソース(例えば、キャッシュ及びメモリ)との間の通信が最高の性能を発揮するように3つの実CPUが互いに最も接近している場合に、パーティションが最高の能力を発揮する。この例においては、パーティションにおけるCPU1及びCPU2は、2つのCPUがCPU1及びCPU8である場合と比べて、キャッシュ1におけるキャッシュ・ラインのスラッシングがより少なくなる。]
[0171] この例においては、CPU1、CPU2及びCPU3を含むパーティションが生成される。パーティションにおいて動作するプログラムはSTSI命令を発行し、SYSIB 15.1.2(図10)テーブルがプログラムに戻される。この場合において、パーティションは、コンテナ6及びコンテナ7を含み、従って、2つのレベルのネスティングが存在する。SYSIBテーブルの値は、以下のとおりである。] 図10
[0172] MNestフィールドは、トポロジがこのモデルについての絶対最大ネスティングである4レベルのネスティングを含むことを示す4に設定され、STSIを発行するゲスト構成へのリソース割り当てと、システムの他のゲスト構成へのリソースの割り当てられ方とに応じて、いずれかの任意のトポロジ・リスト上で完全に利用される場合もあるし、利用されない場合もある。]
[0173] Mag1フィールドは、2つのCPUが最も基本的な第1レベルで利用可能であることを示す2に設定される。
Mag2フィールドは、2つの第2レベル(モジュール)のコンテナが利用可能であることを示す2に設定される。
Mag3フィールドは、2つの第3レベル(ボード)が利用可能であることを示す2に設定される。
Mag4フィールドは、2つの第4レベル(フレーム)が利用可能であることを示す2に設定される。]
[0174] この例においては、同一のボード上の2つのモジュールに3つのCPUが収容されており、従って、以下の4つのTLEエントリが与えられる。
1.NL=1;CtnrID=1(コンテナ6)
2.NL=0;CPUタイプ=1(CPUのタイプ);CPU Addr Origin =0;CPU Mask 0......11(アドレス指定されたCPUのうちのCPU1及びCPU2)
3.NL=1;CtnrID=2(コンテナ7)
4.NL=0;CPUタイプ=1(CPUのタイプ);CPU Addr Origin =4;CPU Mask 0......10(アドレス指定されたCPUのうちのCPU3)
このように、プログラムは、コンテナ及び戻されたCPU TLEに基づく物理トポロジの表現を有する]
[0175] PERFORM TOPOLOGY FUNCTION(PTF)
図13を参照すると、PERFORM TOPOLOGY FUNCTION(PTF)命令は、好ましくは、オペコードと、第1オペランドを識別するレジスタ・フィールドR1とを含む。R1によって識別される汎用レジスタの内容は、図14に示されるように、ビット位置56-63における機能コードを特定する。] 図13 図14
[0176] 定義される機能コードは以下のとおりである。
FC 意味
0 水平極性を要求する
1垂直極性を要求する
2トポロジ変更の状態をチェックする
0-255の範囲において定義されていない機能コードは、将来の拡張のために未使用とされる。]
[0177] 終了時に、条件コードが2に設定された場合には、汎用レジスタR1のビット位置48−55に理由コードが格納される。命令のビット16−23及び28−31は無視される。]
[0178] 機能コード0の働き:
実行は、以下の理由及び(理由コード)のいずれかについての条件コードを伴って終了する。
特定される理由なし(0)
要求している構成はすでに水平極性である(1)
トポロジ変更がすでに進行中である(2)
それ以外の場合には、構成における全てのCPUが水平極性に置かれるようにプロセスが開始される。
プロセスの終了は、命令の実行とは非同期であり、命令の実行が終了したときに終了する場合もあるし、終了しない場合もある。]
[0179] 結果として得られる条件コード:
0トポロジ変更の開始
1 −
2 要求拒否
3 −]
[0180] 機能コード1の働き:
実行は、以下の理由及び(理由コード)のいずれかについての条件コード2を伴って終了する。
特定される理由なし(0)
要求している構成はすでに垂直極性である(1)
トポロジ変更がすでに進行中である(2)
それ以外の場合には、構成における全てのCPUが垂直極性に置かれるようにプロセスが開始される。プロセスの終了は、命令の実行とは非同期であり、命令の実行が終了したときに終了する場合もあるし、終了しない場合もある。]
[0181] 結果として得られる条件コード:
0トポロジ変更の開始
1 −
2 要求拒否
3 −]
[0182] 機能コード2の働き:
トポロジ変更報告保留条件(topology-change-report-pendingcondition)がチェックされ、命令は、条件コードの組を伴って終了する。]
[0183] 結果として得られる条件コード:
0トポロジ変更報告非保留トポロジ
1変更報告保留
2 -
3 -]
[0184] トポロジ変更は、SYSIB 15.1.2の内容がトポロジ変更前のSYSIB 15.1.2の内容とは異なるようないずれかの変更である。]
[0185] トポロジ変更報告保留条件は、トポロジ変更のプロセスが終了したときに生成される。トポロジ変更報告保留条件は、以下のいずれかが行われたときに、その構成についてクリアされる。]
[0186] PERFORM TOPOLOGY FUNCTIONの実行が、条件コード1を伴って終了する機能コード2を特定する。
SYSIB 15.1.2についてのSTORE SYSTEMINFORMATIONの実行が、構成におけるいずれかのCPUによって成功する。
サブシステムのリセットが行われる。]
[0187] 特別条件:
汎用レジスタR1のビット位置0−55がゼロの場合には、指定例外が認識される。定義されていない機能コードが特定された場合には、指定例外が認識される。]
[0188] プログラム例外:
動作(構成トポロジ・ファシリティがインストールされていない)
特権的動作
仕様]
[0189] メインフレーム例の環境:
ハイエンド・サーバ・アーキテクチャが物理プロセッサの数を増やし、プロセッサ速度が上がり続けるにつれて、大きなマシンを構築するのに必要なプロセッサの「ネスト」は、本来はよりノード的である、より小さな構成単位から作られ続ける。例えば、z990又はz9マシンのL2キャッシュは、完全なキャッシュ・コヒーレントである一方、完全実装モデル(fully populated model)は、実際には、単一のL2キャッシュに見えるようにファブリックによって接続された4つの(4)別個のL2を有する。キャッシュ・ミスを解決するためにノードの使用を停止する不利益は増大し続ける。例えば、リモートL2におけるL1ミスを解決することは、ローカルL2におけるL1ミスを解決することに比べて、より費用がかかる。通常はチップ上のCPのプライベートにおいてミスが発生すると、L1キャッシュで開始するのは費用がかかり、わざわざメモリまで行かなけらばならないことは、永遠にも思えることがある。メモリの速度及びメモリへの接続の増加は、プロセッサ速度の増加に対応しない。全てを近づけて「チップ上」などに一緒にパックしよう試みることが求められているが、電力消費及び冷却の問題がこれに逆行する。]
[0190] z990の導入によって、LPARは、マシン・トポロジを認識し、物理リソースに対する論理パーティションCP及びストレージ・リソースの割り当てを最適化し始めた。論理パーティション・リソースの割り当てを動的に再最適化するための能力の強化は、同時ブック・リペアのサポートにおいて、z9 GA-1で最初に導入された。]
[0191] 本明細書中で説明される新たなサポートは、CECブック構造におけるCPU配置に関するアフィニティ・ディスパッチを提供するために、論理パーティション・トポロジとして示されるマシンのトポロジをzSeries OSソフトウェアに認識させる真の始まりに対応する。]
[0192] 現在は水平極性である共有論理パーティションをzSeriesのLPARが管理する方法を考えることができる。すなわち、論理パーティションについての処理の重みは、論理パーティションにおける全てのオンライン論理CP間で等しく分けられる。このサポートは、論理パーティションの共有論理CPを管理するための、垂直極性と呼ばれる新たな任意の極性の形態を導入する。]
[0193] 論理パーティションが垂直モードで稼働することを選択したときには、ソフトウェアは、このことをzSeriesのハイパーバイザに知らせる新たな命令を発行し、ハイパーバイザは、論理パーティションをディスパッチする方法を変えることになる。]
[0194] 垂直論理パーティションの構成に応じて、論理プロセッサは、高極性、中極性又は低極性を有する。極性は、垂直論理プロセッサが権利を有する物理プロセッサ・シェアの量を記述する。顧客は、マシンにおける各々の論理パーティションが権利を有する物理プロセッサ・サイクルの量を効率的に定める、論理パーティションについての重みを決める。]
[0195] 極性は、論理パーティションに構成される論理プロセッサの数に対するその論理パーティションの現在の重みの比によって評価される。高極性プロセッサは、100%に近いCPUシェアを有する。中極性プロセッサは0より大きいシェアから99%までのシェアを有し、低極性プロセッサは0%(又はそれに非常に近い)シェアを有する。高極性の論理CPは、専用CPに極めて類似した状態で稼働するように物理プロセッサを割り当てられることになるが、共有される高極性CPは、依然として物理リソースを放棄し、他の共有CPがその余剰サイクルを用いることができるようにする。ソフトウェアが、論理トポロジを理解し、作業キューのために高極性の論理CPを利用しようとすることが、ここでの鍵になる。]
[0196] 例えば、顧客が、各々が2つの論理プロセッサを有し、各々が重み50を有する2つの論理パーティションを持つ3ウェイ・プロセッサを構成する。第1の論理パーティションは、自らを垂直であると定めた場合には、1つの高極性論理CPと1つの中極性論理CPとを有するものとすることができる。]
[0197] 論理パーティションが垂直モードで稼働することを選択したときには、論理パーティション全体が垂直モードで稼働することに留意されたい。これは、zAAP(IFA)及び/又はzIIPのような、その2次プロセッサの全てを含む。各々のプロセッサ・タイプについて所望のレベルの垂直処理を達成するこれらの理論パーティションのために、全てのプロセッサ・タイプに対して重みを定めることは、顧客が負担することである。]
[0198] 論理パーティション・トポロジ・サポート
・論理パーティション・ノード・トポロジについての基盤を確立する
・有効なトポロジを提供するのに必要な既存の水平パーティションについて、LPARのノード割り当てアルゴリズムに必要ないずれかの変更を行う
・論理パーティション・ノード・トポロジを論理パーティションに与えるSTORE SYSTEMINFORMATION(STSI)命令のための新たな構成トポロジ情報ブロックについて命令シミュレーションを行う
・トポロジ変更が必要かどうかを判断するために、物理又は論理構成の変更を検査する。これらは以下のときに行われる。
・物理CPが構成に加えらるか又は構成から除かれる
・論理CPが構成に加えらるか又は構成から除かれる
・論理パーティションがアクティブにされる
・論理パーティションが非アクティブにされる
・論理パーティションの重みがHMC/SEから変更される
・論理パーティションの重みを変更するソフトウェアが起動する
・論理パーティションがリセットされる(水平に切り替わる)
・論理パーティションがESA/390モードに切り替わる(水平に切り替わる)]
[0199] 環境のアルゴリズム:
トポロジは、論理パーティションが最初にアクティブにされたときに論理パーティションに割り当てられなければならず、論理パーティションに割り当てられたノード・トポロジのいずれかの変更は、論理パーティションに通知されなければならない。ノード・トポロジの結果は、構成の変更が行われたときに新たなSTSI処理並びに制限処理によるより簡単なクエリをできるだけ可能にするように、適当な新しいデータ構造に保持されなければならない。この新たな構造は、トポロジの矛盾するビューを論理パーティションにもたらすことなく、ステップごとに必要なシリアライゼーションを伴う多数のステップにおいて終了するトポロジ変更処理も可能にする。]
[0200] トポロジ割り当て
どのように論理トポロジが選択されるかということは、本開示にとって重要ではない。各々のタイプの論理プロセッサがいくつ必要とされるか、及び、それらがどのノード又はブックに割り当てられる必要があるかという判断が行われなければならないと言うにとどめておく。垂直モード・パーティションの場合には、これは、プロセッサ・タイプごとの垂直高プロセッサ、垂直中プロセッサ、及び垂直低プロセッサのカウントを意味する。]
[0201] 論理CPへの極性値の割り当て
上述のカウントが求められると、CPタイプのうち最も低いオンライン論理CPアドレスから最も高いものに向かって、(1)全て垂直高、(2)全て垂直中、及び(3)全て垂直低の順序で、垂直割り当てが行われる。これが行われる順序は任意であり、他の選択順序も可能である。]
[0202] STORE SYSTEMINFORMATION命令マッピング
15.1.2応答をマッピングするために3つの構造を追加する。
1.STSI 15.1.2についてのマッピング、トポロジをマッピングする応答ブロック
Dcl 1 syibk1512 char(4096) based (*),
3 * char(2),
3 syibk1512_length fixed(16), length
3 syibk1512_mag6 fixed(8), 6th level nest
3 syibk1512_mag5 fixed(8), 5th
3 syibk1512_mag4 fixed(8), 4th
3 syibk1512_mag3 fixed(8), 3rd
3 syibk1512_mag2 fixed(8), 2nd, nodes
3 syibk1512_mag1 fixed(8), 1st, cpus
3 * char(1),
3 syibk1512_mnest fixed(8), nesting level
3 * char(4),
3 syibk1512_topology_list char(0); topology list]
[0203] 2.STSI 15.1.2のためのコンテナ・タイプTLEについてのマッピング
Dcl 1 syibk_vcm_container char(8) based(*),
3 syibknl fixed(8) nesting level
3 * char(3),
3 * char(1),
3 * char(2),
3 syibk_container_id fixed(8); node id]
[0204] 3.STSI 15.1.2のためのCPUタイプTLEについてのマッピング
Dcl 1 syibk_vcm_cpu char(16) based(*),
3 syibknl2 fixed(8), nesting level
3 * char(3),
3 syibk_ded_polarization bit(8), vcm byte
5 * bit(5),
5 syibk_dedicated bit(1), dedicated bit
5 syibk_polarization bit(2), polarization bits
3 syibk_cputype fixed(8), cpu type
3 syibk_cpuaddrorg fixed(16), address origin
3 syibk_cpumask bit(64); cpu mask entry]
[0205] TOPBK−パーティション・トポロジ
論理パーティションのトポロジのサマリは、ノード割り当てルーチンによってこのブロックにおいて新しい状態に保たれる。このブロック内のデータは、STSI処理が、プログラムへの論理パーティション・トポロジ応答を生成するために構造全体の1つのパスを作り、アーキテクチャによって要求されるとおりにCPUエントリの順序及び分離を保存するように、順序付けられる。]
[0206] このブロックは、エントリあたり64ビットのCPUマスクを持つ3次元アレイ(ノード、CPタイプ、極性分類)からなる。]
[0207] トポロジを更新する際に用いるために、第2の作業領域であるTOP_WORKINGが含まれる。
DECLARE
1 TOPBKBASED BDY(DWORD),
3 TOP_CURRENT,
5TOPCPUMASK(1:MAXNODE, /* 1−4ノードの各々
*/
0:CPUTMAX, /* CPタイプのインデックス
*/
0:3) /*論理パーティションが垂直のときの4つの可能なトポロジ分類。パーティションが水平のときには2つの分類のみである。
*/
BIT(64), /* この分類に入る論理CPUのマスク
*/
3 TOP_WORKINGCHAR(LENGTH(TOP_CURRENT)); /* 新たなトポロジを構築するための作業領域
*/]
[0208] TO3PO −パーティション・トポロジ変換
これらの「一定の」変換テーブルは、(TOPBKによってマッピングされた)トポロジを構築するノード割り当てルーチンと、トポロジを読み出すSTSI処理とによって、用いられる。
/****************************/
/* STSI変換アレイ: */
/****************************/
DECLARE
1TOPVERT(0:3) BIT(8) /* 垂直パーティションの場合には、分類インデックスを、STSIデータにおけるCPのこのグループについて戻されるアーキテクチャ化されたD(専用状態)及びPP(極性)に変換する
*/
STATIC INIT('00000'b||'1'b||PPVH,/*分類0:専用、垂直高 */
'00000'b||'0'b||PPVH, /*分類1:共有、垂直高 */
'00000'b||'0'b||PPVM, /*分類2:共有、垂直中 */
'00000'b||'0'b||PPVL), /*分類2:共有、垂直低 */
3* BIT(5), /* 不使用、ビット・アレイのためのバイト整列を要する*/
3TOPDPP BIT(3), /* 用いる実際のD、PP値*/
1TOPHOR(0:1) BIT(8) /* 水平パーティションの場合には、分類インデックスを、STSIデータにおけるCPのこのグループについて戻されるアーキテクチャ化されたD(専用状態)及びPP(極性)に変換する。水平極性の場合は最初の2つの分類のみを用いることができることに留意。
*/
STATIC INIT('00000'b||'1'b||PPH,/*分類0:専用、水平 */
'00000'b||'0'b||PPH), /*分類1:共有、水平*/
3 *BIT(5), /*不使用、ビット・アレイのためのバイト整列を要する*/
3 TOPDPP BIT(3),/*用いる実際のD、PP値*/]
[0209] /*************************/
/* NDI変換アレイ*/
/*************************/
1TOPDPP2CLASS(0:7) FIXED /*トポロジ情報を生成するためにノード割り当てルーチンによって用いられる。LPDPPは、論理CPがどの分類インデックスを用いるべきか判断するために、このアレイ内のインデックスとして用いられる。この1つのアレイは、水平パーティション及び垂直パーティションの両方に用いられる。*/
STATIC INIT(1,/*共有、水平*/
3, /* 共有、垂直低*/
2, /* 共有、垂直中*/
1, /* 共有、垂直高*/
0, /* 専用、水平*/
0, /* 不適用*/
0, /* 不適用*/
0), /* 専用、垂直高*/
3 *CHAR(4); /*強制的に非単純項目になる */]
[0210] 論理プロセッサ・ブロック:
各々の論理プロセッサについてパーティション極性の2ビット符号化を追跡して、その極性を反映することができる。専用の1ビット表示を用いてこれをグループ分けすることによって、論理プロセッサについて3ビットの完全な極性図が可能になる。
・・・・・
3LPDPP BIT(3), /*極性,専用状態を含む */
4 LPDED BIT(1), /* =1、論理CPは専用である*/
4 LPPP BIT(2), /*プロセッサ極性 */
・・・・・
/* プロセッサ極性のための符号化 */
PPHBIT(2) CONSTANT(‘00’B), /* 水平極性 */
PPVLBIT(2) CONSTANT(‘01’B), /*垂直極性−低 */
PPVMBIT(2) CONSTANT(‘10’B), /* 垂直極性−中 */
PPVHBIT(2) CONSTANT(‘11’B), /* 垂直極性−高 */]
[0211] トポロジ・ブロックを更新
CPUトポロジ・マスクのローカル・コピーをクリア
DOターゲット論理パーティションにおける全ての論理CPについて
IF 論理CPがオンラインTHEN
DO
極性インデックス= 極性インデックス・アレイへの極性値の変換に応じて論理CP極性値に適した極性インデックス
CPUトポロジ・マスク(CPUアドレス、ノード、CPタイプ、極性インデックス)のローカル・コピー = ON
END
END
IF 新たなトポロジ・ブロック NOT=パーティションについてのカレント・トポロジ・ブロック THEN
トポロジ変更報告を設定し、新たなトポロジをカレントにコピー]
[0212] STSI 15.1.2についての命令シミュレーション
STSI 15.1.2応答ブロックのためのsyibkマッピング内に、コンテナ・タイプTLE及びCPUタイプTLEが加えられた。原則として、データは、最も低いレベルにおけるエントリがCPUタイプTLEである1つ又は複数のコンテナで戻されなければならない。これは、論理パーティションのリソースがどのように小分割又は割り当てされたかに基づいて、アレイのうちの1つのアレイとして考えることができる。好ましい実施形態の場合には、各々のコンテナは、原則的にネスティング・レベル1を有するノードであり、各々がネスティング・レベル0を有する1つ又は複数のCPUタイプTLEを含む。CPU TLEは、CPUタイプによって順序付けられ、次にそれらの分類によって順序付けられる。垂直パーティションは4つの分類(垂直専用、垂直高共有、垂直中共有、及び、垂直小共有)を有し、水平パーティションは2つの分類(専用及び共有)を有する。]
[0213] 以下のステップは、全ての事前チェックが命令入力の妥当性を検証した後でSTSI 15.1.2がどのように処理されるかについて使用事例を示す。
現在の実施形態の場合には、最大4つのノード及び64のプロセッサが仮定される。]
[0214] topbkの走査を開始し、カレント・ノード値(current node value)と呼ばれるローカル変数に、現時点のノード・インデックスの値を保持する。これが必要とされる理由は、ノード内の64ビット・マスクの全てがゼロの場合には、そのノードについてコンテナ・タイプTLEを生成する必要がないからである。]
权利要求:

請求項1
ホスト・プロセッサ(ホストCPU)を含む論理パーティション化されたホスト・コンピュータ・システムにおいて、ゲスト構成の1つ又は複数のゲスト・プロセッサ(ゲストCPU)のトポロジを発見するための方法であって、ゲスト構成のゲスト・プロセッサが、実行するために、コンピュータ・アーキテクチャのために定められたSTORESYSTEMINFORMATION命令をフェッチするステップと、前記STORESYSTEMINFORMATION命令を実行するステップであって、前記STORESYSTEMINFORMATION命令のトポロジ情報要求に基づいて、コンピュータ構成のプロセッサのネスティング情報を含む、前記コンピュータ構成のトポロジ情報を取得することと、前記トポロジ情報を構成トポロジ・テーブルに格納することと、を含む、当該ステップと、を含む方法。
請求項2
前記トポロジ情報は、ゲスト・プロセッサの識別情報と、前記ゲスト・プロセッサをプロビジョニングする前記ホスト・プロセッサの前記トポロジと関連するネスティング・レベルとを含む、請求項1に記載の方法。
請求項3
前記トポロジ情報は、ゲスト構成のゲスト・プロセッサに関する情報と、前記ゲスト構成をプロビジョニングする前記ホスト・プロセッサの前記トポロジと関連するネスティング・レベルとを含む、請求項2に記載の方法。
請求項4
前記構成トポロジ・テーブルは、プロセッサのうち同様の属性を持つネストされたプロセッサの各々のグループについてのトポロジ・リスト・プロセッサ・エントリを含む、請求項3に記載の方法。
請求項5
前記トポロジ・リスト・プロセッサ・エントリは、ネストされたプロセッサの前記グループのプロセッサが論理パーティションのゲスト構成に専用化されている程度を示す標識子を更に含む、請求項4に記載の方法。
請求項6
前記構成トポロジ・テーブルは、前記ネストされたプロセッサを有する1つ又は複数のネスティング・レベルの階層について各々のネスティング・レベルのトポロジ・リスト・コンテナ・エントリを更に含む、請求項5に記載の方法。
請求項7
前記STORESYSTEMINFORMATION命令は、オペコード・フィールドと、ベース・レジスタ・フィールドと、符号付き置換フィールドとを含み、トポロジ発見命令は、機能コード・フィールド及びセレクタ−1フィールドを含む第1の暗黙汎用レジスタと、セレクタ−2フィールドを含む第2の暗黙汎用レジスタとをさらに含み、前記機能コード・フィールドは、前記トポロジ情報要求を特定し、前記ベース・レジスタ・フィールド及び前記符号付き置換フィールドは、前記構成トポロジ・テーブルを含むシステム情報ブロック(SYSIB)のメモリ内の場所を特定し、前記セレクタ−1フィールド及び前記セレクタ−2フィールドの値の組み合わせが、実行される前記トポロジ情報要求を決定する、請求項1に記載の方法。
請求項8
前記コンピュータ・アーキテクチャについて定められた前記STORESYSTEMINFORMATION命令は、代替コンピュータ・アーキテクチャの中央処理ユニットによってフェッチされて実行され、前記STORESYSTEMINFORMATION命令の動作をエミュレートする所定のソフトウェア・ルーチンを特定するために、前記STORESYSTEMINFORMATION命令を翻訳するステップをさらに含み、前記STORESYSTEMINFORMATION命令を実行する前記ステップは、前記STORESYSTEMINFORMATION命令を実行する前記方法のステップを行うために前記所定のソフトウェア・ルーチンを実行することを含む、請求項1に記載の方法。
請求項9
ホスト・プロセッサ(ホストCPU)を含む論理パーティション化されたホスト・コンピュータ・システムにおいて、ゲスト構成の1つ又は複数のゲスト・プロセッサ(ゲストCPU)のトポロジを発見するためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品は、処理回路によって読み取り可能な、方法を実施するために前記処理回路によって実行される命令を格納する有形のストレージ媒体を含み、前記方法は、ゲスト構成のゲスト・プロセッサが、実行するために、コンピュータ・アーキテクチャのために定められたSTORESYSTEMINFORMATION命令をフェッチするステップと、前記STORESYSTEMINFORMATION命令を実行するステップであって、前記STORESYSTEMINFORMATION命令のトポロジ情報要求に基づいて、コンピュータ構成のプロセッサのネスティング情報を含む、前記コンピュータ構成のトポロジ情報を取得することと、前記トポロジ情報を構成トポロジ・テーブルに格納することと、を含む、当該ステップと、を含む、コンピュータ・プログラム製品。
請求項10
前記トポロジ情報は、ゲスト・プロセッサの識別情報と、前記ゲスト・プロセッサをプロビジョニングする前記ホスト・プロセッサの前記トポロジと関連するネスティング・レベルとを含む、請求項9に記載のコンピュータ・プログラム製品。
請求項11
前記トポロジ情報は、ゲスト構成のゲスト・プロセッサに関する情報と、前記ゲスト構成のゲスト・プロセッサをプロビジョニングする前記ホスト・プロセッサの前記トポロジと関連するネスティング・レベルとを含む、請求項10に記載のコンピュータ・プログラム製品。
請求項12
前記構成トポロジ・テーブルは、プロセッサのうちのネスト化されたプロセッサの各々のグループについてのトポロジ・リスト・プロセッサ・エントリを含む、請求項11に記載のコンピュータ・プログラム製品。
請求項13
前記トポロジ・リスト・プロセッサ・エントリは、ネストされたプロセッサの前記グループのプロセッサが論理パーティションのゲスト構成に専用化されている程度を示す標識子を更に含む、請求項12に記載のコンピュータ・プログラム製品。
請求項14
前記構成トポロジ・テーブルは、前記ネストされたプロセッサを有する1つ又は複数のネスティング・レベルの階層について各々のネスティング・レベルのトポロジ・リスト・コンテナ・エントリを更に含む、請求項13に記載のコンピュータ・プログラム製品。
請求項15
前記STORESYSTEMINFORMATION命令は、オペコード・フィールドと、ベース・レジスタ・フィールドと、符号付き置換フィールドとを含み、トポロジ発見命令は、機能コード・フィールド及びセレクタ−1フィールドを含む第1の暗黙汎用レジスタと、セレクタ−2フィールドを含む第2の暗黙汎用レジスタとをさらに含み、前記機能コード・フィールドは、前記トポロジ情報要求を特定し、前記ベース・レジスタ・フィールド及び前記符号付き置換フィールドは、前記構成トポロジ・テーブルを含むシステム情報ブロック(SYSIB)のメモリ内の場所を特定し、前記セレクタ−1フィールド及び前記セレクタ−2フィールドの値の組み合わせが、実行される前記トポロジ情報要求を決定する、請求項9に記載のコンピュータ・プログラム製品。
請求項16
前記コンピュータ・アーキテクチャについて定められた前記STORESYSTEMINFORMATION命令は、代替コンピュータ・アーキテクチャの中央処理ユニットによってフェッチされて実行され、前記方法は、前記STORESYSTEMINFORMATION命令の動作をエミュレートする所定のソフトウェア・ルーチンを特定するために、前記STORESYSTEMINFORMATION命令を翻訳するステップをさらに含み、前記STORESYSTEMINFORMATION命令を実行する前記ステップは、前記STORESYSTEMINFORMATION命令を実行する前記方法のステップを行うために前記所定のソフトウェア・ルーチンを実行することを含む、請求項9に記載のコンピュータ・プログラム製品。
請求項17
メモリと、前記メモリと通信するホスト・プロセッサ(ホストCPU)を含む論理パーティション化されたホスト・コンピュータ・システムと、を含み、前記コンピュータ・システムは、ゲスト構成の1つ又は複数のゲスト・プロセッサ(ゲストCPU)のトポロジを発見するための方法を実施するように構成されており、前記方法は、前記ゲスト構成の前記ゲスト・プロセッサが、実行するために、コンピュータ・アーキテクチャのために定められたSTORESYSTEMINFORMATION命令をフェッチするステップと、前記STORESYSTEMINFORMATION命令を実行するステップであって、前記STORESYSTEMINFORMATION命令のトポロジ情報要求に基づいて、コンピュータ構成のプロセッサのネスティング情報を含む、前記コンピュータ構成のトポロジ情報を取得することと、前記トポロジ情報を構成トポロジ・テーブルに格納することと、を含む、当該ステップと、を含む、コンピュータ・システム。
請求項18
前記トポロジ情報は、ホスト・プロセッサの識別情報と、前記ホスト・プロセッサの前記トポロジと関連するネスティング・レベルとを含む、請求項17に記載のコンピュータ・システム。
請求項19
前記トポロジ情報は、ゲスト構成のホスト・プロセッサに関する情報と、前記ゲスト構成の前記ホスト・プロセッサの前記トポロジと関連するネスティング・レベルとを含む、請求項18に記載のコンピュータ・システム。
請求項20
前記構成トポロジ・テーブルは、プロセッサのうちのネスト化されたプロセッサの各々のグループについてのトポロジ・リスト・プロセッサ・エントリを含む、請求項19に記載のコンピュータ・システム。
請求項21
前記トポロジ・リスト・プロセッサ・エントリは、ネストされたプロセッサの前記グループのプロセッサが論理パーティションのゲスト構成に専用化されている程度を示す標識子を更に含む、請求項20に記載のコンピュータ・システム。
請求項22
前記構成トポロジ・テーブルは、前記ネストされたプロセッサを有する1つ又は複数のネスティング・レベルの階層について各々のネスティング・レベルのトポロジ・リスト・コンテナ・エントリを更に含む、請求項21に記載のコンピュータ・システム。
請求項23
前記STORESYSTEMINFORMATION命令は、オペコード・フィールドと、ベース・レジスタ・フィールドと、符号付き置換フィールドとを含み、トポロジ発見命令は、機能コード・フィールド及びセレクタ−1フィールドを含む第1の暗黙汎用レジスタと、セレクタ−2フィールドを含む第2の暗黙汎用レジスタとをさらに含み、前記機能コード・フィールドは、前記トポロジ情報要求を特定し、前記ベース・レジスタ・フィールド及び前記符号付き置換フィールドは、前記構成トポロジ・テーブルを含むシステム情報ブロック(SYSIB)のメモリ内の場所を特定し、前記セレクタ−1フィールド及び前記セレクタ−2フィールドの値の組み合わせが、実行される前記トポロジ情報要求を決定する、請求項17に記載のコンピュータ・システム。
請求項24
前記コンピュータ・アーキテクチャについて定められた前記STORESYSTEMINFORMATION命令は、代替コンピュータ・アーキテクチャの中央処理ユニットによってフェッチされて実行され、前記方法は、前記STORESYSTEMINFORMATION命令の動作をエミュレートする所定のソフトウェア・ルーチンを特定するために、前記STORESYSTEMINFORMATION命令を翻訳するステップをさらに含み、前記STORESYSTEMINFORMATION命令を実行する前記ステップは、前記STORESYSTEMINFORMATION命令を実行する前記方法のステップを行うために前記所定のソフトウェア・ルーチンを実行することを含む、請求項17に記載のコンピュータ・システム。
类似技术:
公开号 | 公开日 | 专利标题
US10747582B2|2020-08-18|Managing processing associated with selected architectural facilities
US20200218536A1|2020-07-09|Function virtualization facility for function query of a processor
US20190213126A1|2019-07-11|Creating a dynamic address translation with translation exception qualifiers
US9804970B2|2017-10-31|Invalidating a range of two or more translation table entries and instruction therefor
US20190339994A1|2019-11-07|Architectural mode configuration
US10027675B2|2018-07-17|Determining virtual adapter access controls in a computing environment
TWI622880B|2018-05-01|Computer program products, computer systems and methods for comparing and replacing dynamic address translation entries
US10318407B2|2019-06-11|Allocating a debug instruction set based on the current operating state in a multi-instruction-set data processing apparatus
US8631222B2|2014-01-14|Translation of input/output addresses to memory addresses
US8452942B2|2013-05-28|Invalidating a range of two or more translation table entries and instruction therefore
US8495632B2|2013-07-23|Partition adjunct for data processing system
TWI533219B|2016-05-11|用於控制一異動在一計算環境中之執行之電腦程式產品、電腦系統及方法
US10572392B2|2020-02-25|Increasing the scope of local purges of structures associated with address translation
JP2014238850A|2014-12-18|バーチャルマシーンシステムの物理的メモリのバーチャル化
CN102473139B|2015-05-20|包括用于i/o和计算卸载的多层次地址转换的i/o存储器管理单元
US9858058B2|2018-01-02|Partition mobility for partitions with extended code
CN102906716B|2016-05-25|促进计算环境的系统存储器的管理的方法
ES2382470T3|2012-06-08|Sistemas y procedimientos para la exposición de la topología de un procesador para máquinas virtuales
US7467381B2|2008-12-16|Resource partitioning and direct access utilizing hardware support for virtualization
US9152570B2|2015-10-06|System and method for supporting finer-grained copy-on-write page sizes
US7953588B2|2011-05-31|Method and system for efficient emulation of multiprocessor address translation on a multiprocessor host
KR101060395B1|2011-08-29|직접 메모리 액세스 변환을 위한 어드레스 윈도우 지원
EP2430558B1|2015-03-25|Converting a message signaled interruption into an i/o adapter event notification
AU2010355800B2|2014-04-17|Runtime determination of translation formats for adapter functions
US10176006B2|2019-01-08|Delaying purging of structures associated with address translation
同族专利:
公开号 | 公开日
PL2223214T3|2011-11-30|
CN101911018A|2010-12-08|
DK2223214T3|2011-08-01|
WO2009087232A2|2009-07-16|
ES2380450T3|2012-05-11|
PT2290539E|2012-02-15|
JP4768083B2|2011-09-07|
US20100223448A1|2010-09-02|
EP2223214A2|2010-09-01|
US20090182979A1|2009-07-16|
SI2290539T1|2012-04-30|
US7984275B2|2011-07-19|
EP2290539A1|2011-03-02|
KR101231557B1|2013-02-08|
ES2368684T3|2011-11-21|
PL2290539T3|2012-06-29|
US8832689B2|2014-09-09|
SI2223214T1|2011-10-28|
CN101911018B|2013-08-28|
AT514130T|2011-07-15|
AT540355T|2012-01-15|
CY1112463T1|2015-12-09|
WO2009087232A3|2009-11-05|
PT2223214E|2011-09-19|
US9137120B2|2015-09-15|
US20150026680A1|2015-01-22|
DK2290539T3|2012-02-06|
US20110246752A1|2011-10-06|
US7734900B2|2010-06-08|
KR20100106462A|2010-10-01|
EP2223214B1|2011-06-22|
EP2290539B1|2012-01-04|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
法律状态:
2011-04-29| A521| Written amendment|Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20110428 |
2011-05-23| TRDD| Decision of grant or rejection written|
2011-06-01| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20110531 |
2011-06-02| A01| Written decision to grant a patent or to grant a registration (utility model)|Free format text: JAPANESE INTERMEDIATE CODE: A01 |
2011-06-23| A61| First payment of annual fees (during grant procedure)|Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20110615 |
2011-06-24| R150| Certificate of patent or registration of utility model|Ref document number: 4768083 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
2011-06-27| FPAY| Renewal fee payment (event date is renewal date of database)|Free format text: PAYMENT UNTIL: 20140624 Year of fee payment: 3 |
优先权:
申请号 | 申请日 | 专利标题
[返回顶部]